Google Doodle animation bằng CSS3

 Xem demo  Download demo

Hẳn là các bạn đã từng quen với các hiệu ứng động mà Google thường mang đến cho chúng ta ngay trên trang chủ của họ, được gọi với cái tên là Google Doodle. Hôm nay chúng ta sẽ bắt chước làm một kiểu đơn giản của họ, điều đặc biệt trong hiệu ứng này là tất cả đều được làm bằng html và CSS3, không sử dụng bất kì một đoạn script nào.

css3, Google Doodle, hiệu ứng động, hiệu ứng động bằng css, Doodle animation

 

HTML

Đầu tiên, chúng ta cần có khung html như sau :

<div id="logo">

    <div class="frame">

        <img src="muybridge12-hp-v.png" />

    </div>



    <!-- The play button now -->

    <label for="play_button" id="play_label"></label>

    <input type="checkbox" id="play_button" name="play_button" />



    <!-- The image for the play button

    The sibling selector works in the forward direction only.-->

    <span id="play_image">

        <img src="muybridge12-hp-p.jpg" />

    </span>



    <div class="horse"></div>

    <div class="horse"></div>

    <div class="horse"></div>

</div>

Trong đoạn html bên trên chúng ta có sử dụng vài hình ảnh , và các ảnh này các bạn có thể save tại mục demo hoặc tải về máy tại mục download nhé.

CSS

Đây chính là phần trọng tâm của bài viết này, các bạn tham khảo chi tiết để thấy được những khả năng mà CSS3 mang lại cho chúng ta nhé.

* {margin: 0; padding: 0;}



#logo {position: relative;}



.horse {

    width: 469px; height: 54px;

    background: url(http://www.google.co.in/logos/2012/muybridge12-hp-f.jpg);

}



.frame {position: absolute; left: 0; top: 0; z-index: 1;}



/*Clicking the label will select the checkbox which will be used to

trigger the animation of the horses*/



#play_button:checked ~ .horse {

    -webkit-animation: horse-ride 0.5s steps(12, end) infinite;

    -webkit-animation-delay: 2.5s;

    -moz-animation: horse-ride 0.5s steps(12, end) infinite;

    -moz-animation-delay: 2.5s;

    /*Lets add a pre-anim which will start slowly and merge into the fast animation*/

    background-position: -2412px 0;

    -webkit-transition: all 2.5s cubic-bezier(0.550, 0.055, 0.675, 0.190);

    -moz-transition: all 2.5s cubic-bezier(0.550, 0.055, 0.675, 0.190);

}



/*Hide the play image*/

#play_button:checked ~ #play_image img{

    left: -68px;

    -webkit-transition: all 0.5s ease-in;

    -moz-transition: all 0.5s ease-in;

}



/*804px is the width of the image with 12 horse frames

steps are used in the animation to have the best animation effect

it will position the horse frames accurately in the boxes instead of

tweening it px by px all the way through*/

@-webkit-keyframes horse-ride {

    0% {background-position: 0 0;}

    100% {background-position: -804px 0;}

}

@-moz-keyframes horse-ride {

    0% {background-position: 0 0;}

    100% {background-position: -804px 0;}

}



#play_button {display: none;}

#play_label {

    width: 67px; height: 54px;

    display: block;

    position: absolute; left: 201px; top: 54px; z-index: 2;

}

#play_image {position: absolute; left: 201px; top: 54px; z-index: 0;

    overflow: hidden; width: 68px; height: 55px;

}

#play_image img {position: absolute; left: 0; top: 0;}

Mình hy vọng qua bài viết này, các bạn sẽ hiểu rõ hơn về những tính  năng có trong CSS3 cũng như cách làm hiệu ứng động với thuộc tính animation.

 

 HỖ TRỢ TRỰC TUYẾN