亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

按照課程中的思路,我將alpha值設為浮點數,就會產生奇怪的事情。。。。。。

<!DOCTYPE?html>
<html>
<head>
<meta?charset="UTF-8">
<title>Document</title>
<style?type="text/css">
div{
width:?100px;
height:?100px;
background:?red;
opacity:?0.3;
}
</style>
<script?type="text/javascript">
window.onload?=?opacity;

function?opacity()?{
var?div?=?document.getElementById('div');
div.onmouseover?=?function?()?{
startOpa();
};
div.onmouseout?=?function?()?{
startOpa();
};
}
var?timer?=?null;
//alpha為頁面設置初始不透明度值。
var?alpha?=?0.3;

/*function?startOpa(iTarget)?{
var?div?=?document.getElementById('div');
clearInterval(timer);
timer?=?setInterval(function?()?{
var?speed;
//判斷速度正負,也就是往透明走還是不透明走
if?(iTarget?>?alpha)?{
speed?=?0.05;
}else?{
speed?=?-0.05;
}

//操作
if?(alpha?==?iTarget)?{
clearInterval(timer);
}else?{
alpha?=?speed?+?alpha;
div.style.opacity?=?alpha;
}
},30);
}*/

function?startOpa()?{
var?div?=?document.getElementById('div');
clearInterval(timer);
timer?=?setInterval(function?()?{
if?(alpha?==?1)?{
clearInterval(timer);
}else?{
alpha?=?alpha?+?0.01;
div.style.opacity?=?alpha;
}

},250);
}
</script>
</head>
<body>
<div?id="div"></div>
</body>
</html>

注釋的代碼是寫完的代碼,我把它注釋掉了然后就寫一個開始漸變然后漸變到1時停止這個例子都無法啟動,然而寫成整數又可以運行,頭痛。

正在回答

1 回答

想了半天!終于知道了!跟我一樣的小伙伴不明白的快點進來看!

搞了半天,是javascript的問題,js里浮點數運算有一些小問題.具體情況你們加載這段代碼就明白了.真是巨坑無比!

		var?b?=?0.3;
		for?(var?i?=?0.1;?i?<?1;?i=0.1){
			b+=i;
			alert(b);
		}


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

Csunnnnn

不是js的問題,是當前一切語言的浮點數運算都是近似運算,精確到小數點16位以上,硬件電路設計的問題。
2016-05-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

按照課程中的思路,我將alpha值設為浮點數,就會產生奇怪的事情。。。。。。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號