【问题标题】:YUI2 setStyle opacity not working in IE10YUI2 setStyle 不透明度在 IE10 中不起作用
【发布时间】:2012-10-03 23:31:48
【问题描述】:

我有一些 YUI2 代码 (v2.8.1),如下所示:

YAHOO.util.Dom.setStyle('foo', 'opacity', 0.5); 

和:

var t = new YAHOO.util.Anim(this._splashSlide.shutter, {opacity: {from: 1.0, to: 0}}, 1, YAHOO.util.Easing.easeBoth);

多年来它一直运行良好,它会自动决定是否可以使用style.opacity,或者(对于 IE)它是否必须使用 IE style.filter 来实现不透明度。由于种种原因,不值得将此代码移植到 YUI3。

随之而来的是 IE 10,它(在标准模式下)不再具有 style.filter 属性,仅支持标准 style.opacity 属性。这一切都很好,但是我运行的 YUI2 版本不了解 IE 10,并且显然仍在使用不再有效的 style.filter 属性。

所以,我的问题是,是否有与 IE10 兼容的 YUI2 更新,并在存在该属性的 IE 版本中使用 opacity 属性?

如果它只是一个简单的样式设置,我可以解决它,但我有许多 YUI 动画,我找不到解决这些问题的简单方法(我也不想花时间这样做)。

Yahoo 是否为 YUI2 解决了这个问题?任何人都知道解决方法,特别是对于内部调用 YD.setStyle() 的动画函数?

【问题讨论】:

  • YUI 2 自 2009 年(YUI 3 发布时)以来一直处于仅维护模式,因此不会看到任何新的开发来支持 IE10。

标签: yui internet-explorer-10 yui2


【解决方案1】:

我想我找到了自己问题的答案。 YUI2 v2.9.0 将其setStyle() 函数更改为使用特征检测,因此他们现在可以在支持它的浏览器上正确使用style.opacity,并且仅在不支持style.opacity 时使用IE 的style.filter。

如果有人想知道为什么浏览器检测不好而特征检测好,这是一个完美的例子。因为YUI2原来是用浏览器检测,现在在IE10上坏掉了。如果他们一开始就使用了特征检测,那么旧版本的 YUI2 可以在 IE10 上运行而无需更新。

现在,看看我是否可以让运行我的代码的站点升级到 YUI v2.9.0。如果没有,我将不得不编写一个混乱的解决方法。

【讨论】:

    猜你喜欢
    • 2014-09-24
    • 2014-10-05
    • 1970-01-01
    • 2012-11-04
    • 2023-04-03
    • 2014-06-23
    • 2011-02-26
    • 2016-06-23
    相关资源
    最近更新 更多