google_tilt_turn_replay

Googleの斜めと一回転をJavascriptとCSSで再現してみました



Googleでは「斜め」や「一回転」と検索すると検索結果のページが斜めになったり一回転するんです。
今回はGoogleを真似てみてCSSで斜めと一回転の再現をしてみました。
実行させる方法としてJavascriptを使用しています。
ボタンを押すと実行されるようになっています。

斜め


Google 斜め

斜め実行

斜めを行う上で必要なJavascriptとCSS、HTMLの説明

Javascript
bodyのクラス名に斜めのCSSクラスを追加し、適用させています。
二度目のクリックで元の状態にしております。
// 元のクラス名を保存
var origin = document.body.className;
// 斜め状態 初期値=false
var tilt_flag = false;
function tilt(obj){
    // 現在の状態とは逆にする。
    tilt_flag = !tilt_flag;
    if(tilt_flag ){
        // 斜め実行
        obj.value = "元に戻す";
        // bodyのクラスに追加
        document.body.className = origin + " tilt"; 
    }else{
        // 元に戻す
        obj.value = "斜め";
        // CSSを初期値に戻す
        document.body.className = origin; 
    }
}

CSS
斜めのクラスを書いておいて1度斜めになっています。
/* 斜めに表示するクラス(1度) */
.tilt{
    transform: rotateZ(1deg);
    -moz-transition:rotateZ(1deg);
    -webkit-transform:rotateZ(1deg);
}

HTML
実行ボタン
<!-- 実行ボタン -->
<input type="button" value="斜め" onclick="tilt(this);" />


一回転


Google 一回転

一回転実行

斜めを行う上で必要なJavascriptとCSS、HTMLの説明

Javascript
Javascriptで一回転を行うCSSをbodyに追加、回転が終わった時に元のbodyの状態にしています。
function turn(){
    // bodyのクラス名を取得
    var ori = document.body.className;
    // bodyのクラスに追加
    document.body.className = ori + " turn"; 

    // 一回転後、クラスを元の状態にする。
    setTimeout(function(){
        document.body.className = ori;
    },2000);
}

CSS
CSSの効果を設定、2秒で変形が完了するように設定。
一回転、360度するように設定。
/* 一回転を行うクラス */
.turn{
    /* transition効果の設定 */
    transition: all 2s linear;
    -moz-transition: all 2s linear;
    -webkit-transition: all 2s linear;

    /* 360度回転 */
    transform: rotateZ(360deg);
    -moz-transition:rotateZ(360deg);
    -webkit-transform:rotateZ(360deg);
}

HTML
実行ボタン
<!-- 実行ボタン -->
<input type="button" value="一回転" onclick="turn();" />


Googleはその他、面白いイースターエッグが仕込んであるんで色々探して見てください。

コメントを残す