为了账号安全,请及时绑定邮箱和手机立即绑定

gfggjjk

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

正在回答

1 回答

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>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113923    人
  • 解答问题       1443    个

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

进入课程
意见反馈 帮助中心 APP下载
官方微信