【发布时间】:2011-04-13 20:14:18
【问题描述】:
所以我为我正在开发的游戏制作了自定义函数,一个是淡入淡出,另一个是淡出。问题是fadeOut 有效,但淡入IN 并不...奇怪。有什么线索吗?请参阅下面的代码。
这行得通:
fadeOut:function(o,duration)
{
o.style.opacity = 1;
o._anim = function()
{
if(o.style.opacity <=0)
{
clearInterval(o._animInt);
return false;
}
o.style.opacity -= .1;
game.log("opacity:" + o.style.opacity);
}
o._animInt = setInterval(o._anim,duration / 10)
}
这不是:
fadeIn:function(o,duration)
{
o.style.opacity = 0;
o._anim = function()
{
if(o.style.opacity >= 1)
{
clearInterval(o._animInt);
return false;
}
o.style.opacity += .1;
game.log("opacity:" + o.style.opacity);
}
o._animInt = setInterval(o._anim,duration / 10)
}
【问题讨论】:
-
game.log是否显示增量? -
啊,是的,忘记提了。是的,它就像 console.log ...我制作的自定义日志功能。因此,在淡出期间,不透明度会适当减少。但在淡入淡出时,它会保持在 .1 并无限循环。
-
您是否尝试过使用双精度来表示不透明度?
if(o.style.opacity >= 1.0) -
它可以在其他浏览器中使用吗?您可能想在问题中添加有关“保持 0.1”的信息。一开始我错过了。
-
好吧,fadeOut 方法有效,并且记录器正在获取增量,它的
o.style.opacity += .1;没有注册!
标签: javascript safari opacity fadein fadeout