JS 使用JS操作CSS动画

<!-- webkfa.com -->
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8" />
	<meta name="apple-touch-fullscreen" content="YES" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
	<meta name="apple-mobile-web-app-capable" content="yes" />
	<meta name="format-detection" content="telephone=no" />
	<title>js直接操作css3属性transition和webkitTransform实现动画</title>
  </head>
  
  <body>
  	<input type="button" value="往下" onclick="xia(100);"/>
  	<input type="button" value="往上" onclick="shang(0);"/>
    <div style="width:50px;height:50px;background:red;" id="webkfaid"></div>
    <script type="text/javascript">
    	function xia(sum){
    		var obj=document.getElementById("webkfaid");
    		obj.style.transition="-webkit-transform 500ms ease-out";
			obj.style.webkitTransform="translate(0px,"+sum+"px) scale(1) translateZ(0px)";
    	}
    	function shang(sum){
    		var obj=document.getElementById("webkfaid");
    		obj.style.transition="-webkit-transform 500ms ease-out";
			obj.style.webkitTransform="translate(0px,"+sum+"px) scale(1) translateZ(0px)";
    	}
    </script>
  </body>
</html>

  摘自 http://www.webkfa.com/one4/w648.html

而使用CSS创建动画的时候,写法如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS3 animation-duration属性</title>
    <style type="text/css">
        @-webkit-keyframes mytranslate
        {
            0%{}
            100%{-webkit-transform:translateX(100px);}
        }
        div:not(#container)
        {
            width:40px;
            height:40px;
            border-radius:20px;
            background-color:red;
            -webkit-animation-name:mytranslate;
            -webkit-animation-timing-function:linear;
        }
        #container
        {
            display:inline-block;
            width:140px;
            border:1px solid silver;
        }
        #div1{-webkit-animation-duration:2s;margin-bottom:10px;}
        #div2{-webkit-animation-duration:4s;}
    </style>
</head>
<body>
    <div id="container">
        <div id="div1"></div>
        <div id="div2"></div>
    </div>
</body>
</html>

  CSS动画的几个属性,若是不需要任何行为触发动画,将在元素的样式中调用动画名称。代码如下:

 #div1
        {
            width:40px;
            height:40px;
            border-radius:20px;
            background-color:red;
            -webkit-animation-name:mytranslate;/*调用动画名称*/
            -webkit-animation-timing-function:linear;/*动画变换方式*/
            -webkit-animation-duration:2s;/*动画持续时间*/
            -webkit-animation-iteration-count:infinite;/*若是将infinite改为n,n为整数,就是循环几次。*/
          -webkit-animation-delay:.5s;/*动画延迟时间,表示动画延迟多少秒开始执行,默认为0*/
          -webkit-animation-direction:reverse;/*动画播放方向,属性取值有3个,normal	每次循环都向正方向播放(默认值)
            reverse每次循环都向反方向播放;alternate播放次数是奇数时,动画向原方向播放;播放次数是偶数时,动画向反方向播放*/
} @-webkit-keyframes mytranslate { 0%{} 100%{-webkit-transform:translateX(100px);} }

 CSS动画的总结

 

 

posted @ 2016-12-01 09:59  potato~e-e  阅读(20115)  评论(2编辑  收藏  举报