![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Witam, chcę osiągnąć taki efekt:
--- Po najechaniu na diva i trzymaniu na nim kursora (nie wyjeżdżamy poza div) po 2 sekundach jest wywoływana jakaś funkcja Lecz jeśli nie dotryzmamy tych 2 sekund, tylko zdjedziemy z diva wcześniej to nic się nie dzieję --- Taki efekt chciałbym uzyskać, tylko jak ? Taki 2 - sekundowy onmouseover (IMG:style_emoticons/default/smile.gif) Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
setTimeout na onmouseover i clearTimeout na onmouseout.
Dalej sobie poradzisz. [; |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Dzieki (IMG:style_emoticons/default/smile.gif)
Niby takie proste, takie oczywiste a człowiek od razu nie wpadnie (IMG:style_emoticons/default/smile.gif) Witam ponownie, w divie pojawil sie kolejny problem... otoz jest opisane zdarzenie onmouseout w divie, w którym jest wyświetlony (załadowany) jakiś tekst (strona, bez divów, sam teskt, ew. <font>, span), akcja działa poprawnie - po zjechaniu z niego myszką znika, lecz problem pojawia się wtedy, gdy najadę myszką na jakiś tekst w tym divie - także div znika - reaguje tak, jakbym z niego zjechał, mimo tego, że cały czas na nim jestem. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Niby takie proste, takie oczywiste a człowiek od razu nie wpadnie (IMG:style_emoticons/default/smile.gif) Nie to, ze nie wpadnie, tylko nie poszuka. Cytat otoz jest opisane zdarzenie onmouseout w divie, w którym jest wyświetlony (załadowany) jakiś tekst (strona, bez divów, sam teskt, ew. <font>, span), akcja działa poprawnie - po zjechaniu z niego myszką znika, lecz problem pojawia się wtedy, gdy najadę myszką na jakiś tekst w tym divie - także div znika - reaguje tak, jakbym z niego zjechał, mimo tego, że cały czas na nim jestem. Jak to wyglada? Znowu trzeba wróżyć... Masz ponad 400 postów, a zachwujesz się jakbyś dopiero co trafił na to forum. Może nałóż pustego diva na całą warstwę [text + box] z odpowiednim z-index? Ten tekst to jest jakoś ładowany dynamicznie, czy jest w kodzie i się po prostu ukazuje? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Początkowo:
pusty div: widoczny, ze zdarzeniem onmouseover oraz onmouseout Po najechaniu: [/b]Do diva zostaje załadowany html ze strony poprzez $().load() Gdy jestem myszką w divie to jest ok, lecz gdy najadę w nim na tekst (ten załadowany dynamicznie i nie tylko) reguje jakby onmouseout, mimo, że dalej jestem na nim. Tworzę obrazki... (IMG:http://znajomek.unixstorm.org/pomoc.png) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
bo tak działa onmousover i out... chociaż dalej jesteś na danym elemencie gdyż tylko przechodzisz do bardziej zagłębionego to jednak projektanci uznali, że teraz jesteś dokładnie na innej warstwie... rozwiązanie jest już zaimplementowane w bibliotekach JS i nazywa się hover... jeśli chcesz to wykonać w czystym js to są 2 drogi
- poszukaj o implementacji hover w JS - lub taka implementacja nie bezpośrednia - gdy wywołujesz tamtą funkcję przez setTimeout to ją wykonaj, ale miej gdzieś jeszcze na over ustawioną zmienną czy jesteś na elemencie czy nie, gdy schodzisz z niego to ustawiaj np. false... gdy Ci się wykona funkcja z timeouta z opóźnieniem (asynchronicznie) sprawdzisz wartość zmiennej i uruchomisz jej dalszą instrukcję lub przerwiesz... dodatkowo sobie ustaw jeszcze może czy jest otwarte dane okno... dla mouseout właśnie gdy kasujesz zmienną / ustawiasz na false to nie możesz od razu wykonać ukrywania dymka gdyż dalej możesz być w dużym divie, więc też ukrywanie wywołaj z malutkim timeoutem i tam sprawdź czy jest false tej zmiennej, jeśli tak to ukrywasz - w między czasie jeśli weszłeś na poziom niżej/wyżej funkcją pod mouseouver ustawisz tą zmienną na true... nie wiem czy mnie zrozumiałeś... nie umiem za bardzo wytłumaczyć o co mi chodzi, dlatego choć czułem, że możesz mieć ten problem za nim o nim nie wspomniałeś nic nie pisałem... |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Kombinujecie, a na to jest tylko jedna prosta odpowiedź: event bubbling.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Tak, tylko jak to zastosowac ?
Mam polaczyc divy w jeden ? nie wiem przepraszam, jestem na tux'ie wiec nie mam pl znakow chwilowo |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Kombinujecie, a na to jest tylko jedna prosta odpowiedź: event bubbling. tia jasne - luknąłeś chociaż na problem?? założę się, że nie... problemem tutaj jest, że akcja mouseout zostanie wykonana także, gdy przechodzisz do dziecka elementu na który masz podpięte to zdarzenie - stąd wziął się hover w jQuery... z ukrywaniem i pokazywaniem elementów w zasadzie nikt nie zauważa problemu kto nie potrzebował takiego timeoutu (natychmiastowe ukrycie i od razu pokazanie elementu to tak jak by nic się nie działo) lub kto nie starał się zgłębiać języka... Mouseenter and mouseleave (QuirksMode.org) - i wszystko co powyżej opisane (hover to połączenie mouseenter i mouseleave) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat problemem tutaj jest, że akcja mouseout zostanie wykonana także, gdy przechodzisz do dziecka elementu na który masz podpięte to zdarzenie - stąd wziął się hover w jQuery.. No właśnie o to chodzi - jak podepniesz zdarzenie do większego elementu i aktywujesz bąbelkowanie, masz problem z głowy. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Fajnie - szkoda tylko, że nie wiem jak tego użyć ;p
A jeśli stworzę nową warstwę/element, to nie mogę z poziomu innego załadowanego pliku dzieki load(); zarządzać parentem |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
delegate()?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
delegate, bąbelkowanie itp. Tylko jak tego użyć na moim przykładzie..
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 19:21 |