var timer = null; function touming(obj,num){ clearInterval(timer); timer = setInterval(function(){ var speed = (num - obj.style.opacity)*100/5; speed = speed>0 ? Math.ceil(speed) : Math.floor(speed); if(obj.style.opacity == num){ clearInterval(timer); }else{ obj.style.opacity = obj.style.opacity + speed/100; } },100) } 想要通过传进去一个对象设置它的opacity,结果一直失败.经过调试发现只有第一次的时候能够成功设置,之后每次进else设置之后对象的opacity的值并没有改变.是为什么呢?
obj.style.opacity 的获取值是字符串,而非数字, 所以+号操作得不到你想要的值, parseFloat一下即可