What's new
Apple iPad Forum 🍎

Welcome to the Apple iPad Forum, your one stop source for all things iPad. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

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

williamswan

iPF Noob
Joined
Apr 19, 2012
Messages
5
Reaction score
0
Location
london
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
opening.jpg


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:

Most reactions

Top