gfggjjk

来源:5-1 JS链式动画

无花果10086

2015-03-20 17:43

老师讲的很好 代码能不能共享一下呢

写回答 关注

1回答

  • xue111
    2015-12-30 10:40:09

    move.js代码:

                function  getStyle(obj,attr){

                    if(obj.currentStyle){

                    return obj.currentStyle[attr];

                    }else{

                    return getComputedStyle(obj,false)[attr];

                    }

                 }

                   //fn是一个函数,当我执行完一个参数后,没有马上结束,而是去调用fn函数,再去执行一个新的函数

             function  startMove(obj,attr,iTarget,fn){

                     clearInterval(obj.timer);

                     obj.timer=setInterval(function(){

                      //1.取当前的值

                      var icur=0;

                      if(attr=='opacity'){

                      icur=Math.round(parseFloat(getStyle(obj,attr))*100);

                      }else{

                      icur=parseInt(getStyle(obj,attr));

                        }

                        //2.算速度

                          var speed=(iTarget-icur)/8;

                          speed=speed>0?Math.ceil(speed):Math.floor(speed);

                          //3.检测停止

                          if(icur==iTarget){

                          clearInterval(obj.timer);

                            //如果第一次运动停止了,又传来了一个fn,就去执行fn

                            if (fn) {

                              fn();

                            }

                          }else{

                            if(attr=='opacity'){

                              obj.style.filter='alpha(opacity:'+(icur+speed)+')';//适用于Ie浏览器

                              obj.style.opacity=(icur+speed)/100;//针对火狐与谷歌浏览器,因为是小数,所以要除以100

                            }else{

                          obj.style[attr]=icur+speed+'px';}

                          }

                     },30)

                }


    HTML代码:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>链式运动框架</title>

    <style type="text/css">

             body,ul,li{

              margin:0;

              padding: 0;

             }

             ul,li{

              list-style: none;

             }

             ul  li{

              width: 200px;

              height: 100px;

                background-color: yellow;

                margin-bottom: 20px;

                border: 4px solid #000;

                fiter:alpha(opacity:30);

                opacity: 0.3;

             }

             </style>

             <script  src="move.js"></script>//注意此处加入的move.js是根据自己的move.js在什么文件夹里决定的,我放的是在桌面上。

             <script>

                window.onload=function(){

                 var Li =document.getElementById('li1');

                 Li.onmouseover=function(){

                 startMove(Li,'width',400,function(){

                 startMove(Li,'height',200,function(){

                 startMove(Li,'opacity',100);

                 });

                 });

                 }

                 Li.onmouseout=function(){

                 startMove(Li,'opacity',30,function(){

                 startMove(Li,'height',100,function(){

                 startMove(Li,'width',200);

                 });

                 });

                 }

                }


             </script>

    </head>

    <body>

    <ul>

    <li  id="li1">1.把大象装进冰箱,需要打开冰箱门;把大象装进去;关上门。想要把长颈鹿装进去,先开门把大象取出来,再把长颈鹿装进去,关门</li>

    </ul>

    </body>

    </html>


JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113904 学习 · 1502 问题

查看课程