为什么timer不能再onload事件里声明呢

来源:2-1 JS速度动画

龙缘

2019-11-06 11:34

<div id="item" class="main"><span id = "spare" class = "sp">分享</span></div>

<script type="text/javascript">

window.onload = function (){

var item=document.getElementById("item");

item.onmouseover = function(){

startMove(0);

}

item.onmouseout = function(){

startMove(-400);

}

}

var timer = null;

function startMove(target){

var item=document.getElementById("item");

clearInterval(timer);

timer  = setInterval (function(){

speed = (item.offsetLeft > target)?-10 : 10;

if (item.offsetLeft == target){

clearInterval(timer);

}

else{

item.style.left = item.offsetLeft + speed + "px";

}

},30)

}

</script>


写回答 关注

1回答

  • qq_慕沐3208047
    2020-01-08 16:20:33

    onload事件是页面加载就执行. 如果你在onload里面声明 启动就会执行一次,而不是鼠标进入执行。

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题