緩沖動(dòng)畫(huà)問(wèn)題
???????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);
????????????????};
????????????}
????????}老師舉得例子是從快到慢的, 請(qǐng)問(wèn)如果是從慢到快 應(yīng)該怎么做? ?數(shù)學(xué)公式是什么?
2016-10-19
已有解決方案 雖然不夠好 但是好在代碼簡(jiǎn)單
????????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(){ ????????????????//?數(shù)組正著讀就是由快到慢,?倒著讀就是慢到快 ????????????????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); ????????????????}; ????????????} ????????}2016-10-19
調(diào)過(guò)來(lái)就行了,