前端动画

断了今生、忘了曾经 提交于 2019-12-25 04:47:22

Css动画

Css动画,可以在许多网页中取代动画图片、Flash动画或者JavaScript。那么在css3中创建动画,就需要用到@keyframes规则了。

在 @keyframes 中创建动画时,把它捆绑到某个选择器,否则不会产生动画效果。而且必须定义动画的名称和时长。在时间方面要用百分比来规定,或用关键词 "from" 和 "to",等同于 0% 和 100%;0%是动画的开始,100%是动画的完成。然后再在@keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果啦!。那下面就给大家介绍一下所有的动画属性:

animation:所有动画属性的简写属性

animation-name:规定@keyframes动画的名称

animation-duration:动画完成一个周期所花费的秒或毫秒。默认是0

animation-timing-function:动画的速度曲线,默认是”ease”(ease由快到慢, linear恒速, ease-in加速[渐显], ease-out减速[渐隐], ease-in-out先加速后减速)

animation-delay:动画何时开始,默认0

animation-iteration-count:规定动画被播放的次数。默认是 1(interation反复,infinite无限)

animation-direction:动画是否在下一周期逆向地播放。默认是 "normal"(alternate交替的,轮流的)

animation-play-state: 动画是否正在运行或暂停。默认是 "running"。(paused暂停)

animation-fill-mode:规定对象动画时间之外的状态。

复合写法:animation:name  3s  ease-in-out  2s  infinite  alternate;

Jquery动画

举个“栗子”吧:show()、hide()、slideUp()、slideDown()、slideToggle()、fadeIn()、fadeOut()、animate(),这些都是带有动画效果滴!那么最主要的就是animate()方法啦。

animate()方法可以操作多个css属性,但不是所有的css属性都可以操作,虽然是几乎可以。

比如:用到padding-left时要这样写paddingLeft,使用marginRight而不是margin-right。

animate()简单动画

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-1.11.3.js"></script>
        <style>
            #box{width:100px; height:100px; background:green; position:absolute; left:0;}
        </style>
    </head>
    <body>
        <div id="box"></div>
    </body>
</html>
<script>
    $(function(){
        $("#box").click(function(){
            $(this).animate({left:"150px"},1000)
        })
    })
</script>

队列功能

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="jquery-1.11.3.js"></script>
 7         <style>
 8             #box{width:100px; height:100px; background:green; position:absolute; left:0; top:0;}
 9         </style>
10     </head>
11     <body>
12         <div id="box"></div>
13     </body>
14 </html>
15 <script>
16     $(function(){
17         $("#box").click(function(){
18                 $(this).animate({left:"500px"},1000)
19                 .animate({top:"200px"},1000)
20                 .animate({left:"0"},1000)
21                 .animate({top:"0"},1000)
22         })
23     })
24 </script>

 

css()排队------callback

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="jquery-1.11.3.js"></script>
 7         <style>
 8             #box{width:100px; height:100px; background:green; position:absolute; left:0; top:0;
 9             opacity: .5;}
10         </style>
11     </head>
12     <body>
13         <div id="box"></div>
14     </body>
15 </html>
16 <script>
17     $(function(){
18         $("#box").click(function(){
19             $(this).animate({left:"500px",height:"200px",opacity:"1"},1000)
20             .animate({top:"200px",width:"200px"},1000,function(){
21                 $(this).css("border","5px solid red")
22             })
23             
24         })
25     })
26 </script>

 

有时候我们做出来的动画会有紊乱的情况,那么别担心,stop()专门解决动画复合问题,加在动画之前就好了

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!