我有一些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是不值得的。
随之而来的是IE10,它(在标准模式下)不再具有style.filter属性,只支持标准的style.opacity属性。这一切都很好,但我运行的YUI2版本并不了解IE10,而且显然仍在使用style.filter属性,该属性已不再有效。
所以,我的问题是,是否有与IE10兼容的YUI2更新,并将opacity属性用于存在该属性的IE版本?
如果这只是一个简单的样式设置,我可以解决它,但我有许多YUI动画,我找不到一个简单的方法来解决这些问题(我也不想花时间这样做)。
雅虎为YUI2解决这个问题了吗?有没有人知道一个变通方法,特别是内部调用YD.setStyle()的动画函数?
发布于 2012-10-04 08:00:37
我想我找到了我自己问题的答案。YUI2 v2.9.0更改了它们的setStyle()函数以使用功能检测,因此它们现在可以在支持它的浏览器上正确使用style.opacity,并且只有在不支持style.opacity时才使用IE的style.filter。
如果有人想要一个海报孩子来解释为什么浏览器检测很糟糕,而功能检测很好,这是一个完美的例子。因为YUI2最初使用的是浏览器检测,所以它现在在IE10上失效了。如果他们一开始就使用了特征检测,旧版本的YUI2就可以在IE10上工作,而不需要更新。
现在,看看我是否可以让我的代码运行的站点升级到YUI v2.9.0。如果不是,我将不得不编写一个混乱的解决方案。
https://stackoverflow.com/questions/12718334
复制相似问题