【发布时间】:2015-01-25 18:37:24
【问题描述】:
我做了一个改变元素不透明度的函数,但你知道它不起作用,下面是我的代码:
function _opacity(ele, opacity,addOpac , delay ){
ele = document.getElementById(ele);
var CurrentOpacity = ele.style.opacity,
ChangeInOpacity = setInterval(function(){
if (CurrentOpacity > opacity ) { decrease();};
if (CurrentOpacity < opacity) { increase();};
if (CurrentOpacity == opacity) { stopInc();};
}, delay),
increase = function(){
ele.style.opacity = CurrentOpacity;
CurrentOpacity = CurrentOpacity+addOpac;
},
decrease =function(){
ele.style.opacity = CurrentOpacity;
CurrentOpacity = CurrentOpacity-addOpac;
},
stopInc = function(){
clearInterval(ChangeInOpacity);
};
}
这个函数最重要的特点之一是不使用任何循环。
这种使用setInterval 的思想在改变元素的宽度和高度方面非常有效。但是这里这个功能不起作用。
我所知道的是它没有向传递给上述函数的元素添加任何样式属性
这里的错误是什么导致这不起作用?
提前致谢。
【问题讨论】:
-
在指定样式之前不应该加或减
addOpac吗? -
谢谢.. 但是这个简单的解决方案是如何使这个功能起作用的???
-
元素是否真的应用了不透明样式?
ele.style只访问内联样式,而不是来自 CSS 的样式。 -
您是否意识到
style.opacity的值是一个字符串,而不是一个数字。在您设置它之前,它最初也可能根本不存在。 -
您可以将此评论作为答案发布,我会接受它
标签: javascript opacity