var timer;
function shareTabToggle(iTarget){
var ele = document.getElementById("share");
clearInterval(timer);
var speed = 0;
timer = setInterval(function() {
if (ele.offsetLeft > iTarget) {
speed = (iTarget - ele.offsetLeft)/20;
} else if (ele.offsetLeft < iTarget) {
speed = (iTarget - ele.offsetLeft)/20;
} else {
clearInterval(timer);
return;
}
speed = speed < 0 ? Math.floor(speed) : Math.ceil(speed);
ele.style.left = ele.offsetLeft + speed +"px";
},30);
};
window.onload = init;
function init(){
var shareTab = document.getElementById("share");
if(shareTab.addEventListener){
shareTab.addEventListener('mouseover',function(event){ event.stopPropagation();shareTabToggle(0);},false);
shareTab.addEventListener('mouseout',function(){shareTabToggle(-200);},false);
}else if(shareTab.attachEvent){
shareTab.attachEvent('onmouseover',function(event){ event.cancelBubble=true;shareTabToggle(0);});
shareTab.attachEvent('onmouseout',function(){shareTabToggle(-200);});
}else{
shareTab.onmouseover = function(event){
event.stopPropagation();
shareTabToggle(0);
};
shareTab.onmouseout = function(){
shareTabToggle(-200);
};
}
}老师举得例子是从快到慢的, 请问如果是从慢到快 应该怎么做? 数学公式是什么?
已有解决方案 虽然不够好 但是好在代码简单
var timer;
function shareTabToggle(iTarget){
clearInterval(timer);
var ele = document.getElementById("share");
var temp = ele.offsetLeft;
var speedLst = [];
var speed = 0;
while(true){
speed = (iTarget - temp)/10;
speed = speed > 0 ? Math.ceil(speed) : (speed < 0 ? Math.floor(speed) : speed);
speedLst.push(speed);
temp += speed;
if(temp == iTarget){
break;
}
}
var speedSize = speedLst.length-1;
console.log(speedLst);
timer = setInterval(function(){
// 数组正着读就是由快到慢, 倒着读就是慢到快
ele.style.left = ele.offsetLeft + speedLst[speedSize--] + "px";
if(speedSize == -1){
clearInterval(timer);
}
},30);
};
window.onload = init;
function init(){
var shareTab = document.getElementById("share");
if(shareTab.addEventListener){
shareTab.addEventListener('mouseover',function(event){ event.stopPropagation();shareTabToggle(0);},false);
shareTab.addEventListener('mouseout',function(){shareTabToggle(-200);},false);
}else if(shareTab.attachEvent){
shareTab.attachEvent('onmouseover',function(event){ event.cancelBubble=true;shareTabToggle(0);});
shareTab.attachEvent('onmouseout',function(){shareTabToggle(-200);});
}else{
shareTab.onmouseover = function(event){
event.stopPropagation();
shareTabToggle(0);
};
shareTab.onmouseout = function(){
shareTabToggle(-200);
};
}
}调过来就行了,