沒(méi)用Math.round()方法,為什么沒(méi)問(wèn)題
<!DOCTYPE?html> <html> <head> ????<meta?charset="UTF-8"> ????<title>javascript_move</title> ????<style> ????*{margin:?0;padding:?0} ????#box4{background-color:?green;width:?200px;height:?200px;opacity:?0.3;margin:?20px;float:?left;} ????</style> ????<script?type="text/javascript"> ????window.onload=function(){ ????????var?movepart3=document.getElementsByTagName('div'); ????????for(var?i=0;i<movepart3.length;i++){ ????????????movepart3[i].timer=null; ????????????movepart3[i].onmouseover=function(){ ????????????????startmove3(this,100,'opacity'); ????????????} ????????????movepart3[i].onmouseout=function(){ ????????????????startmove3(this,30,'opacity'); ????????????} ????????} ????} ????function?startmove3(box3,target,attr){ ????????clearInterval(box3.timer); ????????box3.timer=setInterval(function(){ ????????????var?a=0; ????????????if(attr=='opacity'){ ????????????????a=parseFloat(getStyle(box3,attr))*100;//這里沒(méi)用Math.round(); ????????????}else{ ????????????????a=parseInt(getStyle(box3,attr)); ????????????} ????????????var?speed=(target-a)/8; ????????????speed=speed>0?Math.ceil(speed):Math.floor(speed); ????????????if(a==target){ ????????????clearInterval(box3.timer); ????????????} ????????????else{ ????????????????if(attr=='opacity'){ ????????????????????box3.style.opacity=(a+speed)/100; ????????????????????console.log(box3.style.opacity);//我這里加了斷點(diǎn),測(cè)試opacity當(dāng)前值 ????????????????????box3.style.filter="alpha(opacity="+(a+speed)+")"; ????????????????} ????????????????else{ ????????????????????box3.style[attr]=a+speed+"px"; ????????????????} ????????????} ????????},30); ????} ????function?getStyle(obj,attr){ ????????if(obj.currentStyle){ ????????????return?obj.currentStyle[attr]; ????????}else{ ????????????return?getComputedStyle(obj,false)[attr]; ????????} ????} ????</script> </head> <body> ????<div?id="box4"></div> ????<div?id="box4"></div> ????<div?id="box4"></div> ????<div?id="box4"></div> </body> </html>
沒(méi)用Math.round()竟然沒(méi)問(wèn)題,奇了怪了,什么情況~?變量名有點(diǎn)奇怪,請(qǐng)答題的大大將就下。代碼復(fù)制另存html就可以運(yùn)行了。
下面是console.log()測(cè)試的opacity值:
2015-11-18
他不需要整數(shù)的話 用您這個(gè)也是正確的啊 邏輯沒(méi)有錯(cuò)誤 主要看需求
2015-11-18
是沒(méi)什么問(wèn)題呀。他用Math.round 只是為了得到整數(shù)。小數(shù)也是沒(méi)有問(wèn)題的呀