ďťż
Podstrony
|
telcocafeWitam,Mam taki kod: id="bookmarks"; $("#"+id+" li:first a").addClass("active"); $("#"+id+" div.bookmark").not(":first").hide(); $("#"+id+" li a").mouseover(function() { if( !$(this).hasClass("active") ) { var licznik = $("#"+id+" li *").index(this); $("#"+id+" li a").removeClass("active"); $(this).addClass("active"); $("#"+id+" div.bookmark:visible").hide(); $("#"+id+" div.bookmark").eq(licznik).fadeIn('1500'); return false; } }); Problem polega na tym, że jeżeli div "bookmarks" (który jest podmieniany) nie jest na środku, to strona przeskakuje do niego. Czy da się taki efekt zatrzymać? W jQuery dopiero zaczynam pisać, więc nie bardzo mam pomysł, jak to rozwiązać. Domyślam się, że problem jest w efekcie fadeIn. Z góry dziękuję za pomoc, pozdrawiam. Czy możesz to wytłumaczyć lub pokazać demo? Bo ja niczego z tego nie rozumiem. A kod bym uprościł tak:var id="bookmarks"; $("#"+id+" li:first a").addClass("active"); $("#"+id+" div.bookmark:not(:first)").hide(); $("#"+id+" li a").mouseover(function() { if($(this).hasClass("active")) return; var licznik = $("#"+id+" li a").index(this); $("#"+id+" li a.active").removeClass("active"); $(this).addClass("active"); $("#"+id+" div.bookmark:visible").hide(); $("#"+id+" div.bookmark:nth(" + licznik + ")").fadeIn(1500); });Lub tak:var id="bookmarks"; $("#"+id+" li:first a").addClass("active"); $("#"+id+" div.bookmark:not(:first)").hide(); $("#"+id+" li a").each(function(index) { $(this).mouseover(function() { if($(this).hasClass("active")) return; $("#"+id+" li a.active").removeClass("active"); $(this).addClass("active"); $("#"+id+" div.bookmark:visible").hide(); $("#"+id+" div.bookmark:nth(" + index + ")").fadeIn(1500); }); });P.S. Prędkość animacji fade powinna być wartością numeryczną, bo inaczej przyjmuje wartość domyślną. Użytkownik andrzej_aa edytował ten post 16 styczeń 2010, 02:03 Ok, dzięki za odpowiedź. Problem rozwiązałem, więc temat można zamknąć. Sprawa nie tyle tyczyła się jQuery, co po prostu CSSa. Jeszcze raz tłumaczę: gdy zachodziło zdarzenie mouseover, a div o klasie bookmark nie był na środku strony (tylko niżej, tak że pasek przewijania był widoczny), to przeglądarka do niego przeskakiwała. Myślałem, że tak działa funkcja fadeIn. Sprawdziłem, czy normalnie tak przeskakuje i okazało się, że nie (dlatego można nie wiedzieć o co mi chodzi). Problem wynikał natomiast z tego, że div wyżej miał nadane floaty. Nadając mu overflow: hidden rozwiązałem problem. Trochę zagmatwane. ;) /edit A jednak nie do końca, bo działa tylko na Firefoxie. Użytkownik muffy_3 edytował ten post 17 styczeń 2010, 15:41 |
|||
Sitedesign by AltusUmbrae. |