关于设置obj的opacity,一直失败

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的值并没有改变.是为什么呢?
阅读 2.2k
2 个回答

obj.style.opacity 的获取值是字符串,而非数字, 所以+号操作得不到你想要的值,
parseFloat一下即可

楼上正解,转成数值就行了,Number和parseFloat都行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题