在hover时显示/隐藏div并将其hover

我想在hover期间显示并隐藏div并将其hover。

这是我最近所做的。

CSS

$("#menu").hover(function() { $('.flyout').removeClass('hidden'); }, function() { $('.flyout').addClass('hidden'); }); 
 .flyout { position: absolute; width: 1000px; height: 450px; background: red; overflow: hidden; z-index: 10000; } .hidden { visibility: hidden; } 
    

我的问题是,当我将鼠标hover在菜单ID上时,弹出div会闪烁。 这是为什么?

可能不需要JS。 你也可以用css来实现这个目的。 像这样写:

 .flyout { position: absolute; width: 1000px; height: 450px; background: red; overflow: hidden; z-index: 10000; display: none; } #menu:hover + .flyout { display: block; } 

为什么不直接使用.show()/.hide()

 $("#menu").hover(function(){ $('.flyout').show(); },function(){ $('.flyout').hide(); }); 

这是执行此操作的不同方法。 我发现你的代码工作正常。

您的代码: http : //jsfiddle.net/NKC2j/

Jquery切换类演示: http : //jsfiddle.net/NKC2j/2/

Jquery淡出切换: http : //jsfiddle.net/NKC2j/3/

Jquery幻灯片切换: http : //jsfiddle.net/NKC2j/4/

你可以用Sandeep回答的CSS做到这一点

我发现使用css opacity更适合简单的显示/隐藏hover,你可以添加css3过渡来做一个漂亮的完成hover效果。 旧的IE浏览器只会删除转换,因此它会优雅地降级为。

JS小提琴演示

CSS

 #stuff { opacity: 0.0; -webkit-transition: all 500ms ease-in-out; -moz-transition: all 500ms ease-in-out; -ms-transition: all 500ms ease-in-out; -o-transition: all 500ms ease-in-out; transition: all 500ms ease-in-out; } #hover { width:80px; height:20px; background-color:green; margin-bottom:15px; } #hover:hover + #stuff { opacity: 1.0; } 

HTML

 
Hover
stuff
  

你的HTML应该是这样的

 

Test Content

This is the content that appears when u hover on the it

您可以使用jQuery显示div,并将其设置在鼠标所在的位置:

HTML:

        

Hover me!

Ill show you wonderful things

shhhh

款式:

 #trigger { border: 1px solid black; } #secret { display:none; top:0; position:absolute; background: grey; color:white; width: 50%; } 

JS:

 $("#trigger").hover(function(e){ $("#secret").show().css('top', e.pageY + "px").css('left', e.pageX + "px"); },function(e){ $("#secret").hide() }) 

你可以在这里找到干杯的例子! http://plnkr.co/edit/LAhs8X9F8N3ft7qFvjzy?p=preview