这个简短的Javascript有什么问题?
我一直在看这个JS,我试图找出为什么它没有任何效果。 它应该以指定的时间间隔运行函数,直到某个元素的不透明度为0,它应该继续降低该元素的不透明度 启动此间隔函数时,屏幕上不会发生任何事情。有人有什么想法吗这个简短的Javascript有什么问题?,javascript,css,function,stylesheet,opacity,Javascript,Css,Function,Stylesheet,Opacity,我一直在看这个JS,我试图找出为什么它没有任何效果。 它应该以指定的时间间隔运行函数,直到某个元素的不透明度为0,它应该继续降低该元素的不透明度 启动此间隔函数时,屏幕上不会发生任何事情。有人有什么想法吗 setInterval(fadeover, 100); function fadeover() { if (document.getElementById("rightopright").style.opacity > 0) { var curropac;
setInterval(fadeover, 100);
function fadeover() {
if (document.getElementById("rightopright").style.opacity > 0) {
var curropac;
curropac = document.getElementById("rightopright").style.opacity;
document.getElementById("rightopright").style.opacity = (curropac - 0.1);
}
}
我肯定我在做一些愚蠢的事情,但我不知道。。。
任何帮助都将不胜感激 假定您没有为inline
opacity
属性设置默认值,因此它是一个空字符串(不是大于零的值)
您需要针对这种情况进行测试:
function fadeover() {
var el = document.getElementById("rightopright");
var op = el.style.opacity;
if (op === "") {
op = 1;
}
if (op > 0) {
el.style.opacity = (op - 0.1);
}
}
…或者忘记JavaScript动画,改为使用。可能您没有为inline
opacity
属性设置默认值,因此它是一个空字符串(不是大于零的值)
您需要针对这种情况进行测试:
function fadeover() {
var el = document.getElementById("rightopright");
var op = el.style.opacity;
if (op === "") {
op = 1;
}
if (op > 0) {
el.style.opacity = (op - 0.1);
}
}
…或者忘记JavaScript动画,改为使用。除非在元素本身上有
style=“opacity:1”
,否则元素.style.opacity将是空字符串。空字符串不大于零,因此函数永远不会运行
我可否提出以下建议:
function fadeOut(elem,time) {
var opac = 1;
setTimeout(function() {
opac -= 0.1;
elem.style.opacity = opac;
if( opac > 0) setTimeout(arguments.callee,time/10);
},time/10);
}
fadeOut(document.getElementById('rightopright'),1000);
除非元素本身有
style=“opacity:1”
,否则element.style.opacity
将是空字符串。空字符串不大于零,因此函数永远不会运行
我可否提出以下建议:
function fadeOut(elem,time) {
var opac = 1;
setTimeout(function() {
opac -= 0.1;
elem.style.opacity = opac;
if( opac > 0) setTimeout(arguments.callee,time/10);
},time/10);
}
fadeOut(document.getElementById('rightopright'),1000);
试试curropac-parseFloat(0.1)我想说这是太多的代码,只是为了淡出一些东西。@techfoobar你有什么建议?@Kolink-我建议jquery淡出,假设应用程序中有更多jquery可以大量投入的东西。@Kolink-至少,我建议缓存
\rightopright
元素。。我在你的回答中看到了这一点,curropac-parseFloat(0.1)我想说这是太多的代码,只是为了淡出一些东西。@techfoobar你有什么建议?@Kolink-我建议jquery淡出,假设在应用程序中有更多的东西jquery可以大量投入。@Kolink-至少,我建议缓存#rightopright
元素。。我在你的回答中看到了这一点也许你应该先把op
转换成数字,然后再减去<代码>el.style.opacity=(+op-0.1)代码>,如果已指定不透明度,则减法运算符将自动执行。明确地这样做不会增加任何有用的东西。哇,多么美妙的回答啊!感谢所有作出回应的人。我假设不透明度取一个基本整数值1,如果它没有被设置并被渲染到屏幕上-我错了。再一次,来自这个社区的精彩回应。谢谢你的帮助。也许你应该先把op
转换成数字,然后再减去<代码>el.style.opacity=(+op-0.1)代码>,如果已指定不透明度,则减法运算符将自动执行。明确地这样做不会增加任何有用的东西。哇,多么美妙的回答啊!感谢所有作出回应的人。我假设不透明度取一个基本整数值1,如果它没有被设置并被渲染到屏幕上-我错了。再一次,来自这个社区的精彩回应。谢谢你的帮助。谢谢你的洞察力,它也帮助我理解了上面的答案:)谢谢你的洞察力,它也帮助我理解了上面的答案:)