[CSS3 Tutorial]how to make webkit animation without js coding

Discussion in 'iPad Development' started by williamswan, Apr 19, 2012.

  1. williamswan
    Offline

    williamswan iPF Noob

    Joined:
    Apr 19, 2012
    Messages:
    5
    Thanks Received:
    0
    Trophy Points:
    0
    Location:
    london
    Ratings:
    +0 / 0
    We are from Annals.me and we are crazy about HTML5~


    This is an sample of a pure CSS3 animation.
    You don't need any js or jQuery coding.




    first of all, let's have a quick look of why CSS3 animation doesn't need js anymore.
    In traditional html-web animation coding, animation was defined as an Element Movement, which means that the position of an element(padding/margin or absolute) should be changed to implement an animation.And of course, html/css doesn't support any dynamic coding, so you have to use js.


    but within the CSS3 -webkit-animation, the animation was redefined as the trasform/traslate from one key frame to another, so js can be ignored partially.


    OK, ready for the show.
    when you click learn more button on annals.me, the blue part is moving down.


    Before animation, we firstly build a simple layout as follow(original code on annals.me is more complicated.)
    HTML Code:
    HTML:
          body    {padding:0;}    .whole {    display:block;    width:100%;    height:auto;    padding:0 10%;        }        .opening {    diplay:block;    width:80%;    height:300px;    background:#006699;    }        .opening p{    padding:10%;    font-family:Arial;    color:white;    font-size:60px;    }     This is the hidden part    
    it looks like this
    [​IMG]

    This animation is simple, we defined to key frames that are close and opening , and above is opening.


    then we write these into
    HTML Code:
    HTML:
    @-webkit-keyframes show {from {-webkit-transform: translateY(-300px);}to {-webkit-transform: translateY(0);}}


    we name this animation as show.Remember this name.
    FROM is the first key frame, which refers to close(beginning of the animation), translateY(-300px).
    Note the opening part is 300px height, so transitionY(-300px) will move this element out of screen.
    TO is the second key frame, which refers to opening(ending of the animation), and the original CSS style(.opening) above is the opening style, so translateY(0).


    After we finish defining the animation's key frames,we just simply put this name of the animation into the element's style by -webkit-animation.


    HTML Code:
    HTML:
    .opening {    diplay:block;    width:80%;    height:300px;    background:#006699;            -webkit-animation: show 1s 1 linear;        }
    
    show:the name of this animation
    1s:duration of this animation
    1:times of reaction
    linear:ways of moving


    now you can check the web. It is finished and without any js.
    Actually, you may want to trigger this animation by clicking the button.
    So we add some few js coding to make that happend.


    define a default close style. You just add translateY(-300px)
    HTML Code:
    HTML:
    .close{    diplay:block;    width:80%;    height:300px;    background:#006699;            -webkit-transform: translateY(-300px);
    }
    then, replace the div style from .opening to .close
    HTML Code:
    This is the hidden part


    check the web, hidden part should be really hidden.


    last, write a simple function and link this function to the btn
    HTML Code:
    HTML:
    ********>function show(){document.getElementById("moving").className = "opening";}
    and add a button in the body


    HTML Code:


    it is done.


    OK, if you want to close the part, it is very simple if you understand this tutorial.
    Try it yourself
    full code
    Code:
    HTML:
            body    {padding:0;}    .whole {    display:block;    width:100%;    height:auto;    padding:0 10%;        }
        .close {    diplay:block;    width:80%;    height:300px;    background:#006699;            -webkit-transform: translateY(-300px);        }        .opening {    diplay:block;    width:80%;    height:300px;    background:#006699;        -webkit-animation: show 1s 1 linear;        }        .opening p{    padding:10%;    font-family:Arial;    color:white;    font-size:60px;    }
        .btn{    display:block;    width:100px;    margin:auto;}            @-webkit-keyframes show {    from {-webkit-transform: translateY(-300px);}    to {-webkit-transform: translateY(0);}    }                ********>    function show(){    document.getElementById("moving").className = "opening";    }                            This is the hidden part                
    Last edited: Apr 20, 2012
  2. williamswan
    Offline

    williamswan iPF Noob

    Joined:
    Apr 19, 2012
    Messages:
    5
    Thanks Received:
    0
    Trophy Points:
    0
    Location:
    london
    Ratings:
    +0 / 0
    pump

Share This Page

Search tags for this page

css animation:reveal