鼠標移出時,使offsetLeft為0的另一種方法
var timer = null;
window.onload = function(){
? var oDiv = document.getElementById('div1');
? var oDiv2 = document.getElementById('div2');
? oDiv.onmouseover = function(){
? ? Move(0);
? }
? oDiv.onmouseout = function(){
? ? Move(-200);
? }
}
//鼠標移入,模塊右移;鼠標移出,模塊左移
function Move(iTarget){
? var oDiv = document.getElementById('div1');
? //onmouseover、onmouseout事件發生時,首先清空全局定時器timer,以免定時器疊加
? clearInterval(timer);
? var speed = 0;
? //勻速運動:初始右側,目標左側,速度為負;初始左側,目標右側,速度為正
? // if (oDiv.offsetLeft > iTarget) {
? //? ? ?speed = -1;
? //? ?}else{
? //? ? ?speed = 1;
? //? ?}
? //定時器工作,移動模塊
? timer = setInterval(function(){
? ? //速度由快到慢:隨著定時器工作,(目標值-當前值)越來越小
? ? if (oDiv.offsetLeft > iTarget) {
? ? ? speed = Math.floor((iTarget - oDiv.offsetLeft)/10);
? ? ? console.log(speed);
? ? }else{
? ? ? speed = Math.ceil((iTarget - oDiv.offsetLeft)/10);
? ? ? console.log(speed);
? ? }
? ??
? ? //到達目標,清除定時器;否則定時器繼續工作
? ? if (oDiv.offsetLeft == iTarget) {
? ? ? clearInterval(timer);
? ? }else{
? ? ? oDiv.style.left = oDiv.offsetLeft + speed + 'px';
? ? }
? },10)
}
2018-06-01
好的 ok