Autor Zpráva
Hitman
Profil
Už si několik dní lámu hlavu s vyjížděcím menu v jquery. Udělat se dá jakkoliv, nějakému elementu nastavím jako hover vyjetí menu a po odjetí z menu nastavím schování.

Zjistil jsem že je celkem problém když třeba přes daný prvek přejedu 10x tam a zpět (ještě než se menu rozbalí tak na něj najedu atd.) a myší odjedu úplně jinam (a prvek má nastaven pomalý pohyb) tak potom ještě lítá půl minuty nahoru dolů.

Jak to řešíte? Vím že se takto normální uživatel chovat nebude, ale přecejen by se to mělo nějak ošetřit. Jak? Ideální by bylo přidat podmínku něco jako "pokud ještě není dokončeno vyjíždění, reaguj na odjetí až po úplném najetí a to pouze 1x". Je to možné?

Momentálně to mám třeba takto:

$( "span#editace_tlacitko" ).mouseover(function() {
    
  $( "#editace_tlacitko .submenu" ).slideDown("slow");                     

});
    
$( "span#editace_tlacitko" ).mouseleave(function() {
            
  $( "#submenu" ).slideUp("slow");
});

Zkoušel jsem to i za použití tohoto návodu, ale efekt je víceméně stejný, pokud chci, dokáži menu rozpohybovat, což je podle mě špatně.
Chamurappi
Profil
Reaguji na Hitmana:
Vím že se takto normální uživatel chovat nebude
Já se tak chovám. Baví mě, jak to pak půl hodiny samo jezdí :-)

Ideální by bylo přidat podmínku něco jako
Ne, ideální je tu animaci otočit v okamžiku, kdy se změní cílový stav. Což u jQuery animací nijak nejde, pokud vím. Kdybys měl napsanou vlastní funkci na animaci, dělalo by se to tak, že si upravíš proměnnou se směrem, pomocí které se počítá aktuální stav, a posuneš čas startu animace na dvojnásobek aktuálního času mínus cílový čas. Tak to řeším já.

Kdo musí na animace používat jQuery, ten to většinou řeší stopem, s parametry true, true. Prostě tu frontu efektů někdy utíná…
Hitman
Profil
Aha, díky, vyřešeno pomocí stop(), není to sice úplně ideální, ale lepší než nic :-)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: