![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Hej
Każdy <li> w liście <ul> ma dodane zdarzenie onmouseover. I wszystko gra - kiedy najeżdżam kursorem wykonuje się funkcja (IMG:style_emoticons/default/wink.gif) Problem w tym, że kiedy przewijam stronę scrollem (nie poruszając kursorem) i kursor jest wtedy nad elementem <li> to zdarzenie onMouseOver się nie wywołuje. Próbowałem dodać do body zdarzenie onScroll i wtedy wywołać zdarzenie onMouseOver ręcznie. Ale tu pojawia się nowy problem - jak pobrać element pod kursorem? Tutaj macie przykład. Ten post edytował veratrion 17.12.2011, 16:45:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jaka przeglądarka (i jej wersja) się tak zachowuje?
Sprawdziłam przykład na IE9, Chrome i Firefoksie (pomijając Operę na trzech głównych silnikach renderowania) i: 1) Chrome i Firefoks działają tak, że po najechaniu za pomocą scrolla element podświetla się na czerwono 2) IE9 działa z opóźnieniem - element podświetla się na czerwono jeśli jeszcze raz użyjemy scrolla (jest opóźniony) Natomiast jeśli finalnie chcesz zmienić tylko style po najechaniu, to nie tędy droga, co prawda nie wpływa to na zachowanie IE9, które nadal działa z opóźnieniem. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Heh może poruszasz myszą przy scrollowaniu. Spróbuj samymi strzałkami klawiatury przewijać stronę.
Sprawdzałem to na: chrome 16.0.9 opera 11.6 IE 8 FF 8.0.1 - Tylko tu działa dobrze Podświetlenie elementu jest tylko przykładem dowolnej instrukcji. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cóż, taka specyfika przeglądarek.
Przesuwanie strzałkami to nie najeżdżanie myszką. To że kursor przypadkiem trafił widać niekoniecznie zmotywowało wszystkich do zaimplementowania tego typu rozwiąznia. Tak działają wszystkie strony korzystające ze zdarzeń js. Tutaj nawet przeglądarki na jednym silniku (webkit) typu Chrome i Safari działają różnie. Trzeba się niestety z tym pogodzić. Btw, u mnie na chrome (jeszcze wersja 15) też działa jak powinno, tzn po przesunięciu strzałkami robi się czerwone tło. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cholera, ale tak nie powinno być...
Nie dałoby się ręcznie wymusić wywołanie zdarzeń danego typu, czy coś. Nie wierzę, że czegoś się nie da zrobić. Prawdziwy programista się nie poddaje! (IMG:style_emoticons/default/tongue.gif) Musi się to dać obejść |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Możesz dodatkowo użyć w CSS hover na element li z tym samym background'em.
http://jsfiddle.net/WZ3CT/3/ Ten post edytował Niktoś 17.12.2011, 16:28:35 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
To czerwone tło to tylko przykład.
Równie dobrze mógłby się zmieniać napis w <li>. Poza tym :hover nie zmienia sytuacji bo i tak nie działa ;P (co jest jeszcze dziwniejsze) Ten post edytował veratrion 17.12.2011, 16:44:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 16:55 |