上栗子
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标移入移出</title> <style> *{margin: 0;padding: 0;} #div{ position: relative; left: -200px; top: 0; width: 200px; height: 200px; background: orange; } #div span{ position: absolute; left: 200px; top: 30%; height: 40px; width: 20px; background: #eee; cursor: pointer; } </style> </head> <body> <div id="div"><span>分享</span></div> <script> window.onload = function(){ var oDiv = document.getElementById('div'); oDiv.onmouseover = function(){ startMove(); } oDiv.onmouseout = function(){ startMove1(); } var timer; function startMove(){ clearInterval(timer); //清除定时器 timer = setInterval(function(){ if(oDiv.offsetLeft == 0){ clearInterval(timer); }else{ oDiv.style.left = oDiv.offsetLeft+10+'px'; } },30) } function startMove1(){ clearInterval(timer); //清除定时器 timer = setInterval(function(){ if(oDiv.offsetLeft == -200){ clearInterval(timer); }else{ oDiv.style.left = oDiv.offsetLeft-10+'px'; } },30) } } </script> </body> </html>startMove() 和 startMove1()非常相似,可以使用参数
js代码变成
<script> window.onload = function(){ var oDiv = document.getElementById('div'); oDiv.onmouseover = function(){ startMove(10,0); } oDiv.onmouseout = function(){ startMove(-10,-200); } var timer; function startMove(speed,offLeft){ clearInterval(timer); //清除定时器 timer = setInterval(function(){ if(oDiv.offsetLeft == offLeft){ clearInterval(timer); }else{ oDiv.style.left = oDiv.offsetLeft+speed+'px'; } },30) } } </script>参数越少越好,速度可以判断
<script> window.onload = function(){ var oDiv = document.getElementById('div'); oDiv.onmouseover = function(){ startMove(0); } oDiv.onmouseout = function(){ startMove(-200); } var timer; function startMove(offLeft){ clearInterval(timer); //清除定时器 timer = setInterval(function(){ var speed; if(oDiv.offsetLeft > offLeft){ speed = -10; }else{ speed = 10; } if(oDiv.offsetLeft == offLeft){ clearInterval(timer); }else{ oDiv.style.left = oDiv.offsetLeft+speed+'px'; } },30) } } </script>