-
Recently Browsing 0 members
- No registered users viewing this page.
-
Similar Content
-
Game Boy emulator released for iPhone, lets you download ROMs from the web and play 1 2
By Sagar Naresh,
- 34 replies
- 3 views
-
New low-cost Apple iPad and iPad mini may not launch until late 2024
By John Callaham,
- 1 reply
- 3 views
-
Apple now has a single web page to access manuals, specs, and downloads
By Aditya Tiwari,
- apple
- apple support
- (and 4 more)
- 10 replies
- 3 views
-
Apple will give developers a way to let EU users download iOS apps from their websites soon
By John Callaham,
- apple
- european union
- (and 6 more)
- 16 replies
- 3 views
-
Microsoft introduces TypeScript 5.4: Explore the latest features and enhancements
By zikalify,
- microsoft
- typescript
- (and 4 more)
- 11 replies
- 2 views
-
Question
normansu
This is an sample of a pure CSS3 animation.
You don't need any js or jQuery coding.
i wanted to show you an existing sample but NEOWIN considered it as an ad.....
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:
it looks like this
This animation is simple, we defined to key frames that are close and opening , and above is opening.
then we write these into <style></style>
HTML Code:
@-webkit-keyframes show {
from {-webkit-transform: translateY(-300px);}
to {-webkit-transform: translateY(0);}
}
</style>
[/CODE]
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:
diplay:block;
width:80%;
height:300px;
background:#006699;
-webkit-animation: show 1s 1 linear;
}
[/CODE]
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:
diplay:block;
width:80%;
height:300px;
background:#006699;
-webkit-transform: translateY(-300px);
}[/CODE]
then, replace the div style from .opening to .close
HTML Code:
check the web, hidden part should be really hidden.
last, write a simple function and link this function to the btn
HTML Code:
function show(){
document.getElementById("moving").className = "opening";
}
</script>[/CODE]
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:
<head>
<style>
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);}
}
</style>
<script>
function show(){
document.getElementById("moving").className = "opening";
}
</script>
</head>
<body>
<div class="whole">
<div id="moving" class="close">
<p>This is the hidden part</p>
</div>
</div>
<input type="button" class="btn" value="show" onclick="show()"/>
</body>
</html>[/CODE]
Link to comment
Share on other sites
4 answers to this question
Recommended Posts