Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> skrypt dziala tylko raz
matewka
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.11.2009

Ostrzeżenie: (0%)
-----


Witam.
Mam taką funkcję, którą uruchamiam kliknięciem w jeden z dwóch przycisków. Funkcja służy do przesuwania DIVa w górę lub w dół. Niestety funkcja działa tylko raz. Nie ważne czy nacisnę przycisk pierwszy czy drugi, po jednym kliknięciu funkcja się ładnie wykonuje a potem, jakby przyciski "tracą swoją moc".
  1. function updown (kierunek) {
  2. skrol = document.getElementById('menu_inner').style;
  3. if (kierunek == "up") {
  4. skrol.top += 120;
  5. }
  6. else {
  7. skrol.top -= 120;
  8. }
  9. }


Widzę, że nikt nie potrafi nic zaradzić, więc może podam adres faktycznej strony: http://mateuszgawlinski.pl/css3/galeria.php?galeria=rodzina
Może teraz kogoś oświeciło?
Go to the top of the page
+Quote Post
Scalak
post
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

Ostrzeżenie: (0%)
-----


sprawdź co wywali alert(document.getElementById('menu_inner').style.top) a potem użyj parseInt

Pozdro
Maciek

PS: doprowadzi do
document.getElementById('menu_inner').style.top=parseInt(document.getElementById('menu_inner').style.top)-120+'px'

Ten post edytował Scalak 13.12.2010, 18:44:36
Go to the top of the page
+Quote Post
matewka
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.11.2009

Ostrzeżenie: (0%)
-----


Twoja propozycja nie działa.
A alert wyświetlał NaN albo cały czas 120px (przy drobnych modyfikacjach kodu). Na razie odszedłem od tego pomysłu i właśnie czytam jak stosować object.offsetTop. Bo tam jest też coś z object.offsetParent...
Jak doczytam i wstawię to dam znać czy zadziałało.

--------------------------------------------------------------

Zgasiłem na chwilę dwie linijki kodu i wyświetliłem alert.
  1. function updown (kierunek) {
  2. skrol = document.getElementById('menuInner');
  3. if (kierunek == "up") {
  4. //skrol.offsetTop += 120;
  5. alert (skrol.style.top);
  6. }
  7. else {
  8. //skrol.offsetTop -= 120;
  9. alert (skrol.style.top);
  10. }
  11. }

To zadziwiające, ale alert nie wyświetla NIC! Natomiast jak napiszę tak:
  1. alert (parseInt(skrol.style.top));

to alert wyświetla NaN

Ten post edytował matewka 13.12.2010, 19:16:51
Go to the top of the page
+Quote Post
Scalak
post
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

Ostrzeżenie: (0%)
-----


podmień updown('down') w onclicku na to co podałem:
document.getElementById('menu_inner').style.top=parseInt(document.getElementById('menu_inner').style.top)-120+'px'

i dopisz do <div id='menu_iner' style='top:0px;'>
metoda.style.top dojdzie tylko do stylu wpisanego bezpośrednio w znacznik

M

PS: piłem do tego że alert(document.getElementById('menu_inner').style.top) zwraca wartośc stylu WPISANEGO w znacznik i dodatkowo z końcówka px (jako string).

Ten post edytował Scalak 13.12.2010, 19:21:54
Go to the top of the page
+Quote Post
matewka
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.11.2009

Ostrzeżenie: (0%)
-----


Jesteś bogiem! smile.gif
Tylko mam jeszcze jedno pytanko: Czemu kod dla onclicka muszę umieszczać bezpośrednio w onclicku?
Pytam, ponieważ chciałem jeszcze nieco skomplikować moją funkcję (uwarunkować jej wykonanie tym, że przewijana lista się skończyła i nie ma już co przewijać). Przez ten fakt ta jedna linijka kodu może stać się bardzo długa, co uważam za bardzo niechlujne.

Ten post edytował matewka 13.12.2010, 19:48:39
Go to the top of the page
+Quote Post
Scalak
post
Post #6





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

Ostrzeżenie: (0%)
-----


ależ oczywiście można umieścić kod w funkcji i wywoływać ją w zdarzeniu. Przykładowo:

<script type="text/javascript">
function test(){
TU KOD
}
</script>

<div onclick="test()">KLIK MI</div>

Ten post edytował Scalak 13.12.2010, 20:22:45
Go to the top of the page
+Quote Post
matewka
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.11.2009

Ostrzeżenie: (0%)
-----


Wszystko jasne. Jeszcze raz dziękuję.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 15:42