Ottenere plug-in jQuery Lavalamp lavorare con menu a discesa?
-
18-09-2019 - |
Domanda
Ho un problema con il jQuery Lavalamp plug . Funziona perfettamente con un menu a livello singolo, ma dopo l'aggiunta di un menu a discesa si arriva un po 'perso. Ecco cosa voglio dire:. http://screenr.com/0fS
Naturalmente quello che vorrei realizzare è per lo sfondo lavalamp di rimanere sulla voce Portafoglio quando l'utente passa sopra gli elementi secondari.
Credo che sia una questione di cambiare un po 'il plugin, quindi ecco il codice completo del plugin. Ciò che serve è solo un modo semplice per rendere la fermata lavalamp allo stato attuale, quando i figli di <li>
sono aleggiava e poi tornare a lavorare normalmente dopo. Ecco il codice del plugin completo per riferimento!
(function($) {
$.fn.lavaLamp = function(o) {
o = $.extend({ fx: "linear", speed: 500, click: function(){} }, o || {});
return this.each(function() {
var me = $(this), noop = function(){},
$back = $('<li class="back"><div class="left"></div></li>').appendTo(me),
$li = $("li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];
$li.not(".back").hover(function() {
move(this);
}, noop);
$(this).hover(noop, function() {
move(curr);
});
$li.click(function(e) {
setCurr(this);
return o.click.apply(this, [e, this]);
});
setCurr(curr);
function setCurr(el) {
$back.css({ "left": el.offsetLeft+"px", "width": el.offsetWidth+"px" });
curr = el;
};
function move(el) {
$back.each(function() {
$(this).dequeue(); }
).animate({
width: el.offsetWidth,
left: el.offsetLeft
}, o.speed, o.fx);
};
});
};
})(jQuery);`
Grazie in anticipo.
Soluzione
La correzione di questo è quello di cambiare l'hover () nella lavalamp per mouseover come mostrato nella pagina seguente ..
Altri suggerimenti
Ho aggiunto classe aggiuntiva di alto livello Li e aggiornato i js:
$li = $("li.top-level-item", this),