好奇怪啊,是我的瀏覽器兼容問(wèn)題嗎?IE9以上了,用的opacity屬性,JS代碼如下,如果iTarget輸入為1,就只會(huì)到0.7就不動(dòng)了
var timer = null
var alpha = 1
function starttou(iTarget){
? ?var oDiv = document.getElementById('oDiv')
? ?console.log(oDiv.style.opacity)
? ?clearInterval(timer)
? ?var speed = null;
? ?if(iTarget >alpha){
? ? ? ?speed = 0.1
? ?} else if(iTarget < alpha){
? ? ? ?speed = -0.1
? ?}
? ?timer = setInterval(function(){
? ? ? ?if(iTarget ==alpha) {
? ? ? ? ? ?clearInterval(timer)
? ? ? ?}
? ? ? ?else{
? ? ? ? ? alpha = alpha + speed
? ? ? ? ?alpha = Math.floor(alpha*10)/10 ? //不知道為什么,輸出的alpha不是整數(shù),這里把它取整了
? ? ? ? ? oDiv.style.opacity =alpha
? ? ? ?}
? ?},30)
}
2016-08-26
解決辦法
其中Math.ceil()是向上取整。
僅供參考
2016-08-25
你看alpha值,每次乘以10之后是7.999999999999999……,所以取整之后得到的都是7,取整操作是舍棄小數(shù)部分,所以一直在0.7處循環(huán)。
2016-08-15
Math.floor(alpha*10)/10
一個(gè)數(shù)乘以10,然后向下去整,然后再除以10,沒(méi)懂
0.31*10=3.1
取整3
3/10=0.3
3.1*10=31/10=3.1