[javascript][css] Animacja menu w jQuery

0

Witam
Mój twór tu: http://dl.dropbox.com/u/285192/strona/index.html
Czemu menu zachowuje się nie tak jak powinno, czyli nie pokazuje drugiego poziomu po najechaniu myszą na jedną z opcji? Niby animacja powinna płynnie zmieniać rozmiar, a z wysuwanym podmenu dzieje się coś, czego nie potrafię wytłumaczyć.
Wytłumaczyć potrafię mój cel. Warstwa druga menu ma mieć początkowo rozmiary 100x0 px. Przy zdarzeniu onmouseover menu powinno zmieniać płynnie rozmiar do 120 x auto px. Przy onmouseout menu powinno zwijać się do początkowch rozmiarów.

0

Masz w arkuszu stylów regułę div#menu ul li ul { height: 0; }. Prawdopodobnie to jest przyczyną problemu.

0

Dzięki za podpowiedź. Znalazłem przyczynę problemu: deklaracja "height: 0" skrypt zmienia na "height: auto", tyle, że to nic nie daje, tzn. dla przeglądarki "height: 0" nadal pozostaje w mocy (a przynajmniej taki jest efekt). Chodzi o to, żeby dobrać wysokość

  • do aktualnej liczby elementów w nim się znajdujących. Rozwiązanie może niezbyt eleganckie, ale na razie jedyne działające:</p>
var ul_height;
$(document).ready(function(){
	$("div#menu ul li").mouseover(function(){
		ul_height = $(this).find("ul li a").size();
		//alert(ul_height);
		$(this).find("ul").stop().css('visibility','visible').animate({
			'height'	:	ul_height*30 + 'px',
			'width'		:	'120px',
		},100);
	});
0

@bfo:
Raczej chodziło mi o to, żebyś pozbył się tego height: 0. Po co Ci ono? Ja nie stosowałbym go w menu.

Jeśli chcesz na początku ukryć opcje w menu, to użyj do tego jQuery. Wywołaj slideUp(0), to natychmiast się schowają.

Takie hacki jak tam teraz masz nie powinny być niezbędne. Chcesz tylko zwinąć lub rozwinąć (w pionie) pewien element HTML. Do tego służy slideUp i slideDown.

0

Muszę użyć animate() bo chcę nie tylko wysunąć ale i poszerzyć w locie. Degraduje się tak jak chcę przy wyłączonym JS a z włączonym też hula, więc gra na razie:) Jak będę bardziej zaawansowany to mogę się zająć upiększaniem kodu, bo na razie terminy gonią.

1 użytkowników online, w tym zalogowanych: 0, gości: 1