【问题标题】:Child elements in div won't fadeTo() in IEdiv 中的子元素不会在 IE 中使用 fadeTo()
【发布时间】:2011-01-12 18:31:53
【问题描述】:

这对我来说很奇怪。这段代码:

$(".layover").fadeTo("fast", 0.0);
$(".layover").hover(function() {
$(this).fadeTo("fast", 0.9);
},
function() {
$(this).fadeTo("fast", 0.0);
});

..在除 IE7 和 IE8 之外的所有浏览器上都可以正常工作。它甚至在 IE6 中(尖叫声!)(尖叫!)中(尖叫!)在 IE7 和 IE8 中,此代码不会淡出子元素,即 img 标签。 img 只是坐在那里不受影响。但是,如果我在 IE8 中启用“兼容模式”,它会按预期工作。见this example page

我的 JavaScript 中是否缺少一些东西来帮助 IE 玩得更好?我可以在 IE 中强制兼容模式吗?

我知道有人会对 FOUC 发表评论。我也在努力。

更新:这是 CSS 部分

div.layover {
position:absolute;
padding:0px;
display:inline-block;
background-color:#fff;
height:106px;
width:312px;
}

【问题讨论】:

  • .layover 及其子级的 css 是什么样的?我得到了一些基于定位的混合结果。
  • patrick,很抱歉没有包括该部分。现在在我原来的帖子里。谢谢。
  • 旁白:我认为你不需要“display:inline-block”,不过我可能是错的。

标签: jquery fadeto


【解决方案1】:

这并不能回答您的主要问题,但我相信将您的第一行更改为此将有助于解决您的 FOUC:

$(".layover").hide();

【讨论】:

  • $(".layover:).fadeOut("fast") 会更合适。
  • 我的理解是,在页面加载后,他希望 .layovers 立即不可见。仅在鼠标输入时淡入,在鼠标退出时淡出。在这种情况下,不,.hide();会更合适。
  • 如果它们完全隐藏,.hide() 会这样做,使它们占据页面上的 0 个空间,那么它们怎么会有 mouseenter 事件?他没有让他们看到,没有从文档中删除他们的空间,这是非常不同的。
猜你喜欢
  • 2012-11-20
  • 2012-11-15
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
相关资源
最近更新 更多