【问题标题】:FadeIn javascript function in Safari not working but FadeOut works :(Safari 中的 FadeIn javascript 函数不起作用,但 FadeOut 起作用:(
【发布时间】: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 &gt;= 1.0)
  • 它可以在其他浏览器中使用吗?您可能想在问题中添加有关“保持 0.1”的信息。一开始我错过了。
  • 好吧,fadeOut 方法有效,并且记录器正在获取增量,它的 o.style.opacity += .1; 没有注册!

标签: javascript safari opacity fadein fadeout


【解决方案1】:
function fadeIn (o,duration) {
   o.style.opacity = 0;

   o._anim = function() {
      var opacity = parseFloat(o.style.opacity);
      if(opacity >= 1) { clearInterval(o._animInt); return false;}
      o.style.opacity = opacity + 0.1;
      game.log("opacity:" + o.style.opacity);
   }

   o._animInt = setInterval(o._anim,duration / 10)
}

不透明度属性是一个字符串。首先解析它,比较,递增,然后存储。这在 Chrome 和 Firefox 中对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    相关资源
    最近更新 更多