![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.08.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób przy zdarzeniu onmouseover sprawdzić, pozycję kursora oraz diva?
Chodzi mi o taką sytuację. Mamy diva o szerokości 117px i wysokości 17px. Ten div jest w jakiejś tam sobie odległości od lewego, górnego rogu okna przeglądarki. Ten div jest pozycjonowany relatywnie. W tym divie istnieje sobie drugi div pozycjonowany absolutnie, a w nim tabela z podlinkowanymi ikonkami. Ten główny div ma dwa zdarzenia. onmouseout oraz onmouseover. Gdy mysz znajdzie się nad tym divem pojawia się div z tabelą znajdujący się bezpośrednio w nim. W teorii wszystko działa poprawnie jednakże w praktyce nie do końca. Sprawdzałem na przeglądarce FF oraz Opera. W obu przypadkach pojawia się problem. Umieszczenie kursora myszy na divie otwierającym liste ikon powoduje pokazanie listy ikon. Dalsze poruszanie w obrębie tego diva powoduje, że przeglądarka jakby głupieje i nie wie co zrobić. Raz wywołuje zdarzenie zdjęcia kursora myszy z diva, a raz zdarzenie umieszczenia kursora myszy na tym divie. Poniżej schemat. Swoją drogą nie działa wstawianie kodu HTML w wyswigu forum więc wybaczcie, ale daję zwykłym tekstem. Z kolei po jednym enterze tworzy się akapit. Co wy porobiliście z tym forum? Kiedyś działało to znacznie lepiej... Wracając do tematu. Wpadłem na pomysł, by w funkcji ze zdarzenia onmouseover pobierać pozycję kursora oraz diva, w którym występuje. Jeżeli kursor faktyczni znalazł się poza divem funkcja wykona się, a jeśli nie, nic nie zrobi. Dlatego pytam, jak pobrać absolutną pozycję diva oraz absolutną pozycję kursora w funkcji JS? Ten post edytował innowwwacje 17.03.2009, 12:35:21 -------------------- INNOWWWACJE - innowacyjne rozwiązania sieciowe
Tworzenie Stron i Serwisów WWW oraz Aplikacji Internetowych, Pozycjonowanie Stron Internetowych, Copywriting, Kreowanie Tożsamości Firmy i wiele więcej... xHTML / CSS / JavaScript / AJAX / XML / PHP / SQL / MySQL Zend Framework, jQuery, Lightbox, TinyMCE |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
mysz to:
event.clientX event.clientY a div sprawdzaj po offsecie, czyli coś ala var box = document.getElementById("box"); var lewy=box.offsetLeft; |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.08.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dobrych parę godzin szukałem i znalazłem.
Taki skrypt:
Dajemy tuż przed </body> (najlepiej po wszystkich innych znacznikach). Powoduje on, że przy każdym ruchu myszy pozycja myszy zapisywana jest w zmiennych tempX oraz tempY są one dostępne z poziomu wszystkich innych skryptow. W ten spsosóbpozycja kursora jest zawsze dostępna. Funkcji nie trzeba specjalnie wywoływać (działa niejako w tle). Z kolei pozycja elementu to rzecz trochę bardziej skomplikowana. Samo offsetLeft nie wystarczy, gdy element div jest w innych elementach typu divy, tabele itp. Ponizszy skrypt
Zwraca dla dwóch zminnych pos_left oraz pos_top pozycję od góry i od lewej krawędzie ekranu danego elementu uwzględniając jego położenie w innych elementach. Dzięki za pomoc. Ten post edytował innowwwacje 17.03.2009, 12:36:01 -------------------- INNOWWWACJE - innowacyjne rozwiązania sieciowe
Tworzenie Stron i Serwisów WWW oraz Aplikacji Internetowych, Pozycjonowanie Stron Internetowych, Copywriting, Kreowanie Tożsamości Firmy i wiele więcej... xHTML / CSS / JavaScript / AJAX / XML / PHP / SQL / MySQL Zend Framework, jQuery, Lightbox, TinyMCE |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 04:11 |