Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Wysuwany blok
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
adam882
Witam

Chcę zrobić w jquery tak, aby boczny pasek z kategoriami: <div id="kat_blok">...</div> po najechaniu myszką przesuwał się do góry (nakładając się na blok nadrzędny <div id="lokalizacja">...</div>), a po odjechaniu myszką żeby wrócił na swoje miejsce. Wykombinowałem coś takiego:

[JAVASCRIPT] pobierz, plaintext
  1. var lock = false, lock2 = false;
  2.  
  3. $('#kat_blok').mouseover(function()
  4. {
  5.  
  6. if(!lock)
  7. {
  8. $('#lokalizacja').hide(100);
  9. }
  10. lock = true;
  11.  
  12.  
  13. }).mouseout(function()
  14. {
  15. if(lock){
  16. if(!lock2)
  17. {
  18. $('#lokalizacja').show(100,function(){lock=lock2=false;});
  19. }
  20. lock2 = true;
  21. }
  22.  
  23. });
[JAVASCRIPT] pobierz, plaintext

Wygląda to tak, że blok nadrzędny po prostu znika, a w jego miejsce wskakuje blok pod spodem (ale efekt jest osiągnięty). Tylko jest problem - po najechaniu na niego myszką - blok skacze od góry do dołu, a po odjechaniu wraca na swoje miejsce. Jak zrobić, aby po najechaniu blok przeniósł się do góry, a po odjechaniu wrócił na swoje miejsce.
mortus
Pozycjonowanie absolutne jest jak najbardziej właściwe, ale dodatkowo trzeba użyć z-index, aby "wyciągnąć" ten boczny pasek nad wszystkie niezbędne warstwy (na sam wierzch). Wtedy te lock-i nie będą potrzebne. Być może trzeba będzie umieścić pozostałą część HTML (zawartość body) w warstwie spodniej, czyli takiej, która ma mniejszą wartość z-index.

W chwili obecnej masz wszystko na jednej warstwie w związku z czym przeglądarka nie rozpoznaje, czy kursor jest nad określonym elementem, czy już nie, tym bardziej, że ten element zmienia położenie (stąd efekt "skakania").
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.