在IE中没有触发的空divhover事件

我有一个带有子div的div。 当鼠标hover在父div上时,我使用jQuery显示/隐藏子div(父div跨越页面的整个底部。宽度:100%,高度100px)。 我已经使用了firebug和ie开发人员工具栏来确认父div在页面上。

我可以将鼠标hover在Chrome和FireFox中的空父div上,一切正常。 IE要求我在里面有一些文本hover在上面。 div hover事件不会只用一个空div来触发。

所有合理的解决方案都适用于这个问题?

–update

尝试了所有的建议,但没有任何工作。

Search

上面的html包含在母版div容器中。 使用jQuery隐藏子div并进行一些hover/输出事件。 父div(toolBar)始终在页面上可见。 当在toolBar上发生hover时,会显示子div。

inheritance了jQuery代码

 $('#toolBar').hover(ToolBar_OnHover, ToolBar_OnBlur); function ToolBar_OnHover() { $(this).children().fadeIn('fast'); $(this).animate({ height: "100px" }, "fast"); } function ToolBar_OnBlur() { $(this).children().fadeOut('fast'); $(this).animate({ height: "50px" }, "fast"); } 

最后这里有点css

 #toolBar { width: 100%; height: 100px; text-align:center; vertical-align:middle; position: absolute; bottom: 0; background-color: Transparent; } #toolBar div { padding: 5px 5px 0px 5px; width:75%; height: 95px; background: transparent url('/images/toolbar-background.png') repeat-x; margin-right: auto; margin-left: auto; } 

如果你设置背景颜色或边框,它会工作…

如果你可以将这些与现有外观相匹配那么你就可以了..

背景图像似乎是最不引人注目的解决方案

没有评论和filter的东西对我有用。 div永远不会呈现,所以不可能hover。

终极解决方案

 .aDiv { background: transparent url(../images/transparent.gif) repeat; } 

使用一个像素透明的gif图像。 当然有效!

我知道问题已得到解答,但我遇到了同样的问题。 空div不会触发该函数。 如果它有一个边框只有边框本身会启动该function。 我尝试了很多东西,没有任何帮助。 这是我的解决方案,它几乎是唯一的事情是我没有使用图像。 将其添加到您的CSS:

 div {/ *在这里写下元素的名称,类或id * /
背景:#FFF;  / *你可以选择你喜欢的任何颜色,1.0-完全可见* /
不透明度:0.0;  / *除IE *之外的所有浏览器的不透明度设置
 filter:alpha(opacity = 0);  / * IE的不透明度设置,0透明和100完全可见* /
 }

@Skateball:该解决方案有效,但也隐藏了FF / chrome中的所有子元素。 这是我的看法:

 background:#000; background:rgba(0,0,0,0); filter:alpha(opacity=0); 

如果你想保留你的DIV,这对我background-color: rgba(0,0,0,0.001);background-color: rgba(0,0,0,0.001);

这有点hacky,我不知道它是否会改变布局,但你总是可以放一个  里面的div。

只需在“empty”元素中插入一个空注释即可。 🙂

 

这将强制IE渲染元素

可能需要强制元素的hasLayout标志。 这可以通过将CSS属性zoom:1应用于它来完成。

 .trasnparentIE { background: url(../images/largeTransparent.gif) repeat; } 

当我添加边框时,hover事件只在鼠标结束或非常接近边框时触发,但我不需要边框,所以我只使用透明背景,它适用于我…透明背景为我做了伎俩(评论也不起作用……)

您可以设置不透明度以使图层不可见,您还应该设置背景

 { background: white; opacity: 0; } 

我发现在一个区域上浮动鼠标事件跟踪div的最佳方法是使div 1px宽度和你需要的高度。 然后给div一个透明边框 – 右边你需要的实际宽度。 这比透明图像效果更好的原因是因为如果使用图像,则无法跟踪鼠标移动事件,例如拖动,而div不会失去焦点(而是会拖动图像)。 当使用jQuery UI滑块或鼠标拖动来擦除动画时,我遇到了这个问题。 这是我的代码看起来的简单版本。

 //container div to hold the animation images this part doesn't really matter to answer the question 
// a bunch of images stacked like one of those animation flip books you made when you were a kid // and so on
// // now the div that tracks the mouse events this is what I am describing to answer the question // it could certainly be used above nav items and would have less load time than an image

如果您不必支持IE6。 在图形程序(Photoshop)中,创建白盒的1×1图像。 将不透明度降低至1%。 保存为PNG24或GIF。 然后,将其设为透明DIV的背景图像。

这样可以解决问题并保留任何子元素的不透明度。

Interesting Posts