【问题标题】:Does jQuery's fadeIn() and fadeOut() not work with IE 8?jQuery 的fadeIn() 和fadeOut() 不适用于IE 8 吗?
【发布时间】:2010-06-24 23:00:11
【问题描述】:

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

【问题讨论】:

  • 为我工作。您的 html 标记有效吗?如果不是,IE 会按照IT 认为最好的方式做事,这通常是错误的。 (与使用标准相比)

标签: jquery effects internet-explorer-8


【解决方案1】:

IE 有一个称为“hasLayout”的实现细节,遗憾的是,它经常泄漏 API 抽象,必须正面处理......这就是你今天面临的战斗:内联元素通常不会有“布局”,因此不适用于“过滤器”......这是 jQuery 用来模拟 IE 上的不透明度的东西。

这在 IE8 中并不新鲜,通常您根本不必担心它,因为 jQuery 旨在掩盖这种特定于浏览器的疯狂......确实,这就是我的原因我不想详细说明“hasLayout”和“过滤器”的实际含义——你可能不关心,也不应该关心(但是,如果你有兴趣,谷歌一下......)

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

好吧,你对此无能为力。给 IE 团队写一封讨厌的电子邮件可能会让你感觉好一点,但他们在 IE9 上努力工作,应该(敲木头......)解决大多数这些问题。与此同时,您只需要手动完成 IE 使用 自己做的事情(有点,有点,而且肯定是错误的):强制内联元素进入内联块模式:

$("myInlineElement").css({display: 'inline-block'}).faceOut();

...或者更好,put it in an IE8-only stylesheet...

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多