我试图使用hoverintent plugin替换下面的JavaScript代码:jQuery的hoverintent - 一个元素的mouseenter,鼠标离开另一个
$('#top').on('mouseenter', '#nav', function(e){
$('#top ul').delay(100).slideDown(300);
$('#top').stop().animate({
height: 230
}, 400);
});
$('body').on('mouseleave', '#top', function(e){
$('#top ul').slideUp(300);
$('#top').stop().animate({
height: 97
}, 400);
});
我的HTML是:
<div id="main">
<div id="top">
<a href="#" class="logo"></a>
<ol id="nav">
<li><a href="#">Home</a></li>
<li>
<a href="#">Company</a>
<ul>
<li><a href="#">About us</a></li>
<li><a href="#">Management</a></li>
<li><a href="#">Careers</a></li>
</ul>
</li>
<li>
<a href="#">Products</a>
<ul>
<li><a href="#">Product 1</a></li>
<li><a href="#">Product 2</a></li>
<li><a href="#">Product 3</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ol>
</div>
</div>
这里是我的CSS:
html { background:#fff; font-family: Arial, Helvetica, sans-serif; }
#main { position: relative; width: 860px; margin: 0 auto; text-align: left; padding: 0 40px; }
#top { width: 860px; height: 97px; border-bottom: 1px solid #f0f1f0; padding-bottom: 30px; }
#top a.logo { display: block; float: left; width: 186px; height: 55px; margin-top: 40px; background: #ccc; }
#top a.logo:hover { background: #ddd; }
#top ol { position: absolute; top: 37px; right: 40px; display: block; overflow: visible; z-index: 10; }
#top ol li { display: inline-block; float: left; text-align: right; margin-left: 24px; padding-top: 20px; }
#top ol li a { display: block; font-family: "Arial Narrow", "Helvetica Narrow", sans-serif; font-size: 0.8em; color: #989f98; text-decoration: none; text-transform: uppercase; margin-bottom: 5px; }
#top ol li a.current,
#top ol li a:hover { color: #e9292f; }
#top ul { display: none; padding-bottom: 6px; max-width: 95px; border-top: 1px dotted #d1d1d1; }
#top ul li { display: block; float: none; margin-left: 0; padding-top: 3px; }
#top ul li a { font-size: 0.7em; font-family: Arial, Helvetica, sans-serif; text-transform: none; }
这里是什么,我想实现快速图:
所有我想要的是为用户鼠标悬停#nav
,只有有它消失的时候,他们把他们的鼠标移出的#top
(灰在我的图)。鉴于对hoverintent网站上的例子,我不知道如何实现这一目标:(
任何人有任何指针?在此先感谢!
------编辑------
已经得到hoverintent通过做工作到一个点:
var config = {
over: function(){
$('#top ul').delay(100).slideDown(300);
$('#top').stop().animate({
height: 230
}, 400);
},
timeout: 0,
out: function(){
$('#top ul').slideUp(300);
$('#top').stop().animate({
height: 97
}, 400);
}
};
$('#nav').hoverIntent(config);
的问题是我现在的ul
消失的时候我鼠标移出的#nav
,而不是我#top
DIV℃。输,但没有雪茄:(
这是有道理的 - 我会给它一个去看看它是否有效。谢谢! – boz 2012-04-23 11:10:21
试过这样做,它没有达到预期的效果。我的问题是我想让'over'发生在一个元素上,而'out'发生在另一个元素上。 Hoverintent设置为在同一元素上发生: – boz 2012-04-23 13:59:58