Ho un menu che quando passo con il mouse su un div lo mostrerà e al passaggio del mouse si spegnerà. il problema è che se passi su uno dei bambini del menu il menu sparirà (perché tecnicamente se sei sopra uno dei bambini allora non sei sopra il genitore) c'è un modo per far rotolare i bambini conta come un mouse fuori? ecco il mio codice: http://jsfiddle.net/32bLg/menu jquery in bilico
risposta
Questo è un problema molto semplice la maggior parte delle persone tende a complicarsi in modo massivo con timer e controlli caso speciali. La soluzione facile è tramite markup. Colloca il target di passaggio del mouse e il menu sotto lo stesso padre e traccia il passaggio del mouse sul genitore. Like this. Si consiglia inoltre di utilizzare il plug-in jQuery hoverIntent
per evitare falsi eventi di hover.
Una nota UX: le animazioni di dissolvenza che superano i 500 ms sono semplicemente maleducate. Per favore, non farlo.
Ecco una soluzione semplice: http://jsfiddle.net/32bLg/16/
Mi piace l'idea di usare setTimeout +1. –
Guarda anche questi bei esempi:
Una specifica multilivello uno:
HTML dal link 2:
<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();
});
È necessario contenere il div menù all'interno del div hover. Vedi http://jsfiddle.net/T72jm/2/.
Noterai (almeno in Chrome) che se passi il mouse sopra il tuo passaggio al passaggio del mouse e non fai nulla, il div del menu si dissolverà.
questa è la mia correzione
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. Menu Grid in jQuery Mobile
- 2. jQuery menu del tasto
- 3. jQuery Drop Down Hover Menu
- 4. Le righe in bilico in una tabella in Internet Explorer sono lente con qualsiasi doctype
- 5. menu di scelta rapida jquery disattiva voci di menu
- 6. Jquery Disattiva opzione nel menu a discesa
- 7. Jquery mobile pageslide, nuovo menu facebook
- 8. jQuery Menu contestuale del tasto destro Aiuto!
- 9. Menu a discesa personalizzato Trigger w/jQuery
- 10. jquery-ui menu a discesa stile
- 11. eventi jQuery UI Selezionare Menu legano
- 12. jQuery menu a discesa, scheda accessibilità
- 13. mantenere toggle Stato di menu utilizzando JQuery
- 14. Facebook come menu a scorrimento in JavaScript senza jQuery Mobile
- 15. Mobile (touch) menu a discesa amichevole in css/jquery
- 16. jQuery menu a discesa selezionato = selezionato in Safari non funziona
- 17. jQuery Right Mouse fa clic sul menu contestuale plug-in
- 18. Ottieni il valore di un menu a discesa in jQuery
- 19. Animate UIImage in UIImageView Up & Down (come se fosse in bilico) Loop
- 20. Chiusura Menu Contesto con Menu Menu Templati
- 21. jQuery menu a fisarmonica - mantiene aperto il menu fisarmonica alla pagina I am on
- 22. Mentre in bilico su un'etichetta, puntatore del mouse a portata di mano
- 23. Controllare se il pulsante del mouse è premuto mentre si è in bilico?
- 24. Elenco come selezionare il menu a discesa con jQuery?
- 25. Esegui la funzione jQuery al menu a tendina cambia
- 26. menu a discesa del trigger completamento automatico jquery sull'ingresso: focus
- 27. Rilevamento di un menu contestuale incolla nel browser con jquery
- 28. Come impostare il valore nel menu a discesa usando Jquery?
- 29. Manipola menu jquery su ridimensionamento per layout reattivo
- 30. Cambia colore di sfondo del menu con jquery
più eccellente. proprio come nella vita la risposta più semplice di solito è quella giusta. anche i 500ms erano solo per testare, questo è troppo veloce per la maggior parte delle persone da notare comunque ... grazie amico. – zero
Sto riscontrando qualche problema quando provo ad entrare e uscire dal menu del mouse .. 'ora prima di fadeOut' .. mouse in examplePic e mouse fuori ora .. e ancora mouse nel caos per l'animazione. –
@SKS sì, utilizzando l'evento normale "hover' + le animazioni lunghe lo farebbero. Passa a 'hoverIntent' e alle animazioni corte e non lo vedresti. –