为了账号安全,请及时绑定邮箱和手机立即绑定

不写Math.round()得到的是整数还有必要写吗

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<style>

*{margin:0;

 padding:0;}

div{width:200px;

height:200px;

background:red;

float:left;

margin:10px;

filter:alpha(opacity:30);

opacity:0.3;}

li{width:200px;

height:100px;

background:yellow;

margin:10px;

margin-left:0;

list-style:none;

position:relative;

top:220px;

border:10px solid red;}

</style>

<script>

window.onload=function(){

var div=document.getElementById('div1')

div.onmouseover=function(){

startMove(this,'opacity',100);

}

div.onmouseout=function(){

startMove(this,'opacity',30);

}

}

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,false)[attr];

}

}

function startMove(obj,attr,iTarget){

clearInterval(obj.timer);

obj.timer=setInterval(function(){

if(attr=='opacity'){

var iCur=parseFloat(getStyle(obj,attr))*100;

}else{

var iCur=parseInt(getStyle(obj,attr));

}

//alert(iCur);

var speed=(iTarget-iCur)/20

speed=speed>0?Math.ceil(speed):Math.floor(speed);

if(iTarget==iCur){

clearInterval(obj.timer)

}else{

if(attr=='opacity'){

obj.style.opacity=(iCur+speed)/100;

}else{

obj.style[attr]=iCur+speed+'px'

}

}

},30)

}

</script>

</head>

<body>

<div id="div1"></div>

</body>

</html>


正在回答

1 回答

根据你输入的数值,在进行计算时(例如:浮点数乘以整数),浏览器对其进行识别,有时会出现一些不易发现的Bug(例如:视频中出现的0.07*100得到的结果是7.00000000001)。

为了在数值上完全避免Bug。

建议您还是用Math.round()来处理下最终数值。

保持良好的细节处理习惯可以增加开发效率。

1 回复 有任何疑惑可以回复我~
#1

qq_像苏_03760108 提问者

非常感谢!
2016-09-11 回复 有任何疑惑可以回复我~
#2

new新的开始

parseFloat为什么要取完浮点数了。。在取整数
2016-11-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

不写Math.round()得到的是整数还有必要写吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信