jQuery的fadeIn()和fadeOut()不能与IE 8一起使用吗?

nop*_*ole 5 jquery effects internet-explorer-8

我有一个页面fadeIn和fadeOut内联元素和jQuery不起作用.然后当我将开发人员工具更改为使用IE 7的浏览器模式时,则会显示fadeIn()和fadeOut()效果.

Sho*_*og9 6

IE有一个被称为"hasLayout"的实现细节,遗憾的是,它经常泄漏到API抽象之后,必须正面处理......这就是你今天面临的战斗:内联元素通常没有"布局"和因此不能使用"过滤器"...这是jQuery用来模拟IE上的不透明度.

这在IE8中并不新鲜,通常你根本不用担心它,因为它正是这种特定于浏览器的疯狂,jQuery旨在用它来解决......确实,这就是为什么我不打扰它详细了解"hasLayout"和"过滤器"实际意味着什么 - 你可能不关心,也不应该(但是,如果你有兴趣,谷歌吧......)

问题是,jQuery使用的hack强制布局(因此过滤器工作(因此它可以模拟不透明度(因为IE不实现它)))...它在IE8上不起作用.是不是好了,是吗?他们修复了错误,其中display: inline元素表现为display: inline-block元素,但忽略了实现人们使用他们的bug来破解支持的功能......

好吧,没什么'你能做到的.给团队IE写一个讨厌的电子邮件可能会让你觉得好一点,但他们很难在IE9上工作,这应该(敲木头......)解决大多数这些问题.与此同时,你只需要手动完成IE 过去的操作(有点,有点,而且肯定是错误的):强制内联元素进入内联块模式:

$("myInlineElement").css({display: 'inline-block'}).faceOut();
Run Code Online (Sandbox Code Playgroud)

...或者更好的是,将它放在仅IE8的样式表中 ......