我发现好像在move不加 var div1 = document.getElementById('div1'); 也是一样的可以动的

来源:2-1 JS速度动画

加咖啡喵

2017-09-29 09:22

这名话一定要加在move()函数中吗? 加与不加有什么区别吗?

window.onload = function () {
    var div1 = document.getElementById('div1');
    div1.onmouseover = function () {
        move(0);
    }
    div1.onmouseout = function () {
        move(-200);
    }
}

var timer = null;

 function move(target) {
     clearInterval(timer);
     timer = setInterval(function () {
         var speend = 0;
         if(div1.offsetLeft > target){  
             speend = -10;
         } else {
             speend = 10;
         }
         if(div1.offsetLeft == target){
             clearInterval(timer);
         } else {
             div1.style.left = div1.offsetLeft + speend + 'px';
         }
     }, 30);
 }


写回答 关注

1回答

  • 一个人时间
    2017-09-30 11:19:53
    已采纳

    因为你把他写在window.onload=function里面,相当于你把

    var div1 = document.getElementById('div1'); 

    作为一个全局变量了,所以你在move里面直接是可以调用这个div1这个变量的

    div1.style.left = div1.offsetLeft + speend + 'px';

    至于区别    其实也没多大区别    只是你定义在window.onload里面的话在其他函数里面也可以使用

    就是说如果你这个变量在不同的函数中使用次数比较多的话是可以把他直接写到window.onload里面去的,这样的话代码就不会太冗余

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题