纯javascript中的Fadein不起作用。为什么?
我在这里找到了以下代码:。 这是淡出功能。它起作用了纯javascript中的Fadein不起作用。为什么?,javascript,fadein,fadeout,Javascript,Fadein,Fadeout,我在这里找到了以下代码:。 这是淡出功能。它起作用了 var s = document.getElementById('thing').style; s.opacity = 1; (function fade(){(s.opacity-=.1)<0?s.display="none":setTimeout(fade,100)})(); I will fade…对于您的情况,最好的解决方案是使用更多的CSS而不是JS,您可以将属性transition添加到#thing选择
var s = document.getElementById('thing').style;
s.opacity = 1;
(function fade(){(s.opacity-=.1)<0?s.display="none":setTimeout(fade,100)})();
I will fade…
对于您的情况,最好的解决方案是使用更多的CSS而不是JS,您可以将属性transition
添加到#thing
选择器,然后只需通过JS代码设置不透明度(无需添加超时或任何其他形式的复杂处理)
函数隐藏(){
document.getElementById('thing').style.opacity=0
}
函数show(){
document.getElementById('thing').style.opacity=1
}
#东西{
转换:.4s
}
我来了
隐藏
显示该+=
正在尝试追加,因此请继续使用-=
,并将.1设置为负值,即-0.1
,它将正常工作
var s=document.getElementById('thing').style;
s、 不透明度=0;
(函数fade(){
(s.opacity-=-0.1)<1&&setTimeout(淡入度,100);
}
)();代码>
#东西{
背景:红色;
线高:40px;
不透明度:0;
}
我将淡出…
这里有更多关于转换属性的信息:是关于CSS转换的更多信息。请注意,如果使用转换延迟
、转换属性
、转换持续时间
和转换计时功能
@BrenoPrata,则转换具有相当大的灵活性(此外,虽然这提供了一个有效的替代解决方案,但它并没有真正回答OP的问题。他们专门询问代码失败的原因,而您的答案并没有解决这个问题)很好的解决方案!我会测试它。我的观点是:看你的代码,我不知道它为什么会失败,但从日志记录来看,它似乎是s.opacity+=.1
没有效果。日志记录s
前后分别给出0,然后是0.1,然后一直给出0.1。同样,我不知道那里发生了什么。捕捉得好!不透明度是一个字符串,所以附加了0.1W第一次:“0”+“0.1”
是签出的“00.1”
。然后是“0.1”+0.1
,是“0.10.1”
,并被解析回“0.1”
,感谢您的解释!致以最良好的祝愿!