我有一個菜單,當我把鼠標放在一個div上時,它會顯示,在鼠標上它會淡出。問題是,如果您翻轉菜單的任何子菜單,菜單將消失(因爲從技術上講,如果您對其中一個孩子,那麼您沒有超過父母)有沒有辦法讓孩子滾動算作鼠標?這是我的代碼:http://jsfiddle.net/32bLg/jquery菜單懸停
5
A
回答
5
這是一個非常簡單的問題,大多數人往往大量過度計時器和特殊情況下的檢查。簡單的解決方案是通過標記。將懸停目標和菜單放置在同一父級下,並跟蹤父級上的懸停。 Like this。 您可能還想使用hoverIntent
jQuery插件來避免虛假懸停事件。
用戶體驗筆記:持續超過500毫秒的淡入淡出動畫只是粗魯。請不要這樣做。
2
1
查閱這些很好的例子:
特定多一個:
從鏈接2 HTML:
<ul id="nav">
<li><a href="#">1 HTML</a></li>
<li><a href="#">2 CSS</a></li>
<li><a href="#">3 Javascript</a>
<ul>
<li><a href="#">3.1 jQuery</a>
<ul>
<li><a href="#">3.1.1 Download</a></li>
<li><a href="#">3.1.2 Tutorial</a></li>
</ul>
</li>
<li><a href="#">3.2 Mootools</a></li>
<li><a href="#">3.3 Prototype</a></li>
</ul>
</li>
</ul>
CSS:
#nav, #nav ul{
margin:0;
padding:0;
list-style-type:none;
list-style-position:outside;
position:relative;
line-height:1.5em;
}
#nav ul ul{
top:auto;
}
#nav li ul ul {
left:12em;
margin:0px 0 0 10px;
}
#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul{
display:none;
}
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul{
display:block;
}
JS:
function mainmenu(){
$(" #nav ul ").css({display: "none"}); // Opera Fix
$(" #nav li").hover(function(){
$(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);
},function(){
$(this).find('ul:first').css({visibility: "hidden"});
});
}
$(document).ready(function(){
mainmenu();
});
2
您需要包含懸停div中的菜單股利。請參閱http://jsfiddle.net/T72jm/2/。
您會注意到(至少在Chrome中),如果將鼠標懸停在懸停div上並且不執行任何操作,則菜單div將淡出。
1
這是我修復
window.menushowing = false;
$('#menu').hover(
function() {
window.menushowing = true;
}, function() {
window.menushowing = false;
hideMenu();
});
function hideMenu() {
if (window.menushowing) return;
$('#menu').animate({
opacity: 0
}, 1500, function() {
$('#menu').hide();
});
}
$('#examplePic').hover(
function() {
window.menushowing = true;
$('#menu').css('display', 'block');
$('#menu').animate({
opacity: 1
}, 1500);
}, function() {
hideMenu();
});
相關問題
- 1. jQuery懸停菜單
- 2. jQuery菜單懸停
- 3. jQuery懸停菜單
- 4. jquery懸停菜單
- 5. jQuery的菜單懸停
- 6. 懸停子菜單(jQuery)
- 7. jQuery下拉懸停菜單
- 8. jQuery:懸停子菜單
- 9. 菜單子菜單懸停
- 10. 簡單的jQuery懸停菜單
- 11. jQuery下拉菜單單擊不懸停
- 12. jQuery下拉菜單 - 懸停並單擊
- 13. 懸停子菜單
- 14. 菜單上懸停
- 15. Bootstrap Tab懸停菜單懸停
- 16. 懸停在懸停的CSS菜單
- 17. 在jQuery中懸停/鼠標懸停事件的下拉菜單
- 18. 維護鼠標懸停在jquery上的懸停菜單
- 19. 代碼清理 - jquery懸停菜單
- 20. 懸停或點擊jquery下拉菜單
- 21. jQuery的動畫菜單#懸停功能()
- 22. jQuery的菜單懸停問題
- 23. JQuery菜單聲音播放懸停
- 24. jQuery菜單toggleS滑動懸停?
- 25. Jquery/HTML下拉菜單懸停狀態
- 26. jQuery懸停菜單不會消失
- 27. Jquery菜單 - 更改爲鼠標懸停
- 28. jQuery菜單項懸停功能
- 29. jQuery的下拉菜單懸停狀態
- 30. jQuery的鼠標懸停菜單動畫
最優秀的。就像在生活中,最簡單的答案通常是正確的答案。還有500毫秒只是爲了測試,對於大多數人來說這太快了,無論如何...感謝兄弟。 – zero 2012-02-07 22:45:37
當我嘗試將鼠標移入和移出菜單時,出現了一些問題。'now fadeOut'之前..鼠標放在examplePic中,然後鼠標移出。再次用鼠標調整動畫。 – 2012-02-07 22:50:34
@SKS是的,使用常規的'懸停'事件+長動畫可以做到這一點。切換到'hoverIntent'和短的動畫,你不會看到。 – 2012-02-08 12:37:06