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 |
#2 · Zasláno: 10. 5. 2015, 01:44:08
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ší stop em, s parametry true , true . Prostě tu frontu efektů někdy utíná…
|
||
Hitman Profil |
#3 · Zasláno: 11. 5. 2015, 20:09:51
Aha, díky, vyřešeno pomocí stop(), není to sice úplně ideální, ale lepší než nic :-)
|
||
Časová prodleva: 9 let
|
0