jQuery + CSS + IE问题:页面加载时隐藏元素短暂出现
还有其他人经历过下面描述的场景吗?
为了举例,这里有一个非常基本的描述:
#menuHolder
包含菜单项(#itemA
、#itemB
、#itemC
,...#itemZ
)
在 CSS 中,我将 #menuHolder 的
溢出设置为隐藏。
使用 jQuery,我将 #menuHolder
设置为 0 的 minHeight,然后当鼠标悬停在特定元素上时将其扩展为 300 的 maxHeight。
在 FF、Safari 或 Chrome 中没有问题...但在 IE 中会发生以下情况:
短暂地出现 #itemA
、#itemB
、#itemC,...
#itemZ
出现在彼此的顶部。然后它们就会消失并表现正常。
就好像在页面加载之前,overflow:hidden 或 minHeight 都不会被识别。
有什么想法吗?
谢谢 乙
Has anyone else experienced the scenario described below?
For the sake of example, here's a very basic description:
#menuHolder
contains menu items (#itemA
, #itemB
, #itemC
,...#itemZ
)
In CSS, I have #menuHolder's
overflow set to hidden.
Using jQuery, I'm setting #menuHolder
to a minHeight of 0, then expanding it to a maxHeight of 300 when a specific element is moused over.
No problems in FF, Safari or Chrome...but here's what happens in IE:
For a brief moment, #itemA
, #itemB
, #itemC
,...#itemZ
appear on top of each other as the page is loading in IE. Then they disappear and behave as normal.
It's as if either overflow:hidden or minHeight are not being recognized until the page loads.
Any ideas?
Thanks
B
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
ie(如果我没记错的话,至少最多7)不知道min-height,
解决方案是使用一些像这样的CSS,使用一些
条件注释技巧(如 http://html5boilerplate.com
ie (at least up to 7 if i remember correctly) dont know about min-height
the solution is to use some css like that
it would be event better to target ie6/7 with some conditional comment tricks like in http://html5boilerplate.com
也许您应该在 css 中设置容器 display:none ,使用 jquery 预加载现在不可见容器中使用的任何图像,然后在 jquery 中当鼠标悬停时使用适当的高度而不是 min- 和 max- 。
Maybe you should have the container display:none in the css, preload any images used in the now invisible container using jquery, then in jquery use proper height instead of min- and max- when mousing over happens.
在某些情况下,类似这样的方法会起作用:
在页面加载期间不得出现的元素上,将其隐藏在标记中:
然后,在应用 jquery 效果来显示它(即,slideDown())之前,删除该属性并重新隐藏它:
有一天 IE 支持将不再需要这样的滑稽动作。在那之前,希望这会有所帮助。
In some cases, something like this will work:
On the element that must not appear during the page load, hide it in the markup:
Then, before you apply a jquery effect to show it (ie, slideDown()), remove the attribute AND re-hide it:
One day IE support will not require such antics. Until then, hope this helps.
对于一些旧的 jQuery 数据表(例如 1.6.x),仍然没有完美的解决方案,似乎所有隐藏列都会短暂显示:使用表数据中的 bVisibility: false 属性,或者动态设置列可见性。
fnSetColumnVis( 1, 假 );
例如
jquery 数据表隐藏列
有谁知道这个问题在新版本的数据表中已经解决了?
There is still no perfect solution for some of the old jQuery datatables (e.g., 1.6.x), it seems all the hidden colum will be shown briefly: being it using the bVisibility: false property in table data, or set column visibility dynamically.
fnSetColumnVis( 1, false );
e.g.
jquery datatables hide column
Does anyone know this has been solved in the newer version of datatables?