為什么使用getStyle()方法,但是變換后的數(shù)值還是不對(duì)?
如下代碼,鼠標(biāo)移上去改變后的 寬為 391px,于設(shè)定參數(shù)不符, 鼠標(biāo)移出正常是200px,請(qǐng)問哪里出錯(cuò)了
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title>多物體運(yùn)動(dòng)--動(dòng)畫</title> <style?type="text/css"> *?{ ?margin:?0; ?padding:?0; } li?{ ?width:?200px; ?height:?80px; ?margin-bottom:?20px; ?background-color:?#FF0000; ?border:?4px?solid?#000; } </style> <script?type="text/javascript"> window.onload?=?function?(){ ?var?oli?=?document.getElementsByTagName("li"); ?for?(var?i=0;?i<oli.length;?i++)?{ ???oli[i].timer?=?null;????//多物體運(yùn)動(dòng)不能共享一些參數(shù),需提前單獨(dú)設(shè)置為屬性 ? oli[i].onmouseover?=?function?(){ ? ?changeW(this,"width",400); ? } ? oli[i].onmouseout?=?function?(){ ? ?changeW(this,"width",200); ? } ?} } //getStyle()?封裝 function?getStyle(obj,attr){ ?if?(obj.currentStyle)?{ ? return?obj.currentStyle[attr]; ?}?else{ ? return?getComputedStyle(obj,false)[attr]; ?} ???????? } //運(yùn)動(dòng)函數(shù) function?changeW(obj,attr,W)?{ clearInterval(obj.timer); obj.timer?=?setInterval(function(){ ?var?iattr?=?parseInt(getStyle(obj,attr)); ?var?speed?=?(W-iattr)/10; ?speed?=?speed>0???Math.ceil(speed):Math.floor(speed); ?if?(iattr?==?W)?{ ? clearInterval(obj.timer); ?}?else{ ? obj.style[attr]?=?iattr?+?speed?+?"px"; ?} },30) } </script> </head> <body> ?<ul> ? <li></li> ? <li></li> ? <li></li> ?</ul> </body> </html>
2016-07-01
找到原因了,瀏覽器被縮放了...