在IE中没有触发的空divhover事件
我有一个带有子div的div。 当鼠标hover在父div上时,我使用jQuery显示/隐藏子div(父div跨越页面的整个底部。宽度:100%,高度100px)。 我已经使用了firebug和ie开发人员工具栏来确认父div在页面上。
我可以将鼠标hover在Chrome和FireFox中的空父div上,一切正常。 IE要求我在里面有一些文本hover在上面。 div hover事件不会只用一个空div来触发。
所有合理的解决方案都适用于这个问题?
–update
尝试了所有的建议,但没有任何工作。
上面的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的背景图像。
这样可以解决问题并保留任何子元素的不透明度。