1

我有一些看起来像这样的 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)是否必须使用 IEstyle.filter来实现不透明度。由于种种原因,不值得将此代码移植到 YUI3。

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

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

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

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

4

1 回答 1

0

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

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

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

于 2012-10-04T00:00:36.657 回答