![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie i z góry przepraszam, jeżeli gdzieś już jest podobny temat - nie mogłam znaleźć.
W moim pionowym menu jedna z pozycji (div id="menu1") ma się powiększać po najechaniu na nią kursorem myszy i ujawniać linki do podstron (pozostałe id=menu0 i menu2 zmniejszają się w tym czasie). Ogólnie działa dobrze, niestety czasami, szczególnie jak się szybko przejedzie kursorem myszy przez mający się powiększać div pozostaje on powiększony i trzeba ponownie najechać na niego kilka razy aby się cofnął do mniejszych rozmiarów. Wygląda to niezbyt fajnie i chciałabym zrozumieć co może to wywoływać i jak to poprawić. Czy mógłby mi ktoś podpowiedzieć? Mój kod:
Jeżeli elementy html-a i css-a powiązane z tym menu tez są potrzebne to je zamieszczę. Ten post edytował eFK 14.08.2015, 13:55:21 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Problem polega na pobraniu tylko nieanimowanych w danym czasie elementów. Lepiej jest użyć $.fn.stop, zatrzymać aktualną animację i odpalić nową.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast .not(':animated') spróbowałbym .stop().
P.S. Zamiast tego kodu możesz to załatwić czystym CSS. Również .innerHTML, zastępując zmianą właściwości content. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
@trueblue content nie działa wewnątrz elementów niereplace'owanych. Trzeba by kombinować z pseudoelementami. Inna rzecz, że tutaj ::before faktycznie może się lepiej sprawować niż taka zabawa z innerHTML
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za tak szybką odpowiedź, próbowała ze .stop(), ale działało jeszcze gorzej. Spróbuje z $.fn.stop
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
@trueblue content nie działa wewnątrz elementów niereplace'owanych. Trzeba by kombinować z pseudoelementami. Inna rzecz, że tutaj ::before faktycznie może się lepiej sprawować niż taka zabawa z innerHTML Nigdzie nie napisałem, że nie trzeba używać pseudoelementów. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
@eFK to po prostu inny zapis .stop
@trueblue owszem, nie napisałeś, ale to zabrzmiało jakby content było bezpośrednim zastępstwem dla innerHTML. Niestety jeszcze nie jest - chociaż specyfikacja od dawna twierdzi inaczej. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ok, już wszytko wiem.
Po prostu w pierwszej wersji to było .mouseover/ .mouseout + .stop() i to działało najgorzej. Potem w czasie poszukiwań rozwiązania okazało się że ..mouseenter/ .mouseleave działają lepiej ale nie sprawdziłam ich z .stop(). Mój błąd. Teraz wszytko działa idealnie. Dziękuję wam za zwrócenie mi uwagi. Temat można usunąć, albo zostawić dla potomnych... Ten post edytował eFK 14.08.2015, 17:50:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 12:17 |