[JavaScript]Jak sprawdzić dlugosc dokumentu (scrolla) |
[JavaScript]Jak sprawdzić dlugosc dokumentu (scrolla) |
9.10.2010, 14:45:12
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) |
Chce, aby po zjechaniu scrollem na sam dol textarea, aktywowal sie button AKCEPTUJ.
Mam taki kod:
i html:
No i nie wiem jak w tym warunku if pobrac max pozycje scrollTop, probowalem z scrollHeight, ale ta funkcja zwraca wieksza liczbe od scrollTOP (gdy ten jest na samym dole). Kod ogolnie dziala, ale tylko gdy recznie sprawdze jaka liczbe zwraca scrollTop, gdy jest na samym dole i ja wpisze w if - tylko, ze to rozwiazanie jest zle, dlatego ze dokument moze miec zmienna tresc, a co za tym idzie, zmienna liczbe max scrollTop, poza tym w roznych przegladarkach te liczby sa takze rozne. Ten post edytował kaźmirz 9.10.2010, 19:58:35 |
|
|
9.10.2010, 16:14:16
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
https://developer.mozilla.org/pl/DOM/element.scrollHeight :
Cytat property that gets the height of the scroll view of an element; it includes the element padding but not its margin. Dodaj margines do wartości z scrollHeight -------------------- |
|
|
9.10.2010, 18:44:46
Post
#3
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) |
https://developer.mozilla.org/pl/DOM/element.scrollHeight : Dodaj margines do wartości z scrollHeight No ale jaki margines? I raczej dodac musze do wartosci scrollTop - poniewaz to scrollTop jest zawsze mniejsze od scrollHeight :/ Poza tym chrome ma mozliwosc zmiany rozmiarow pola textarea i to wplywa na wartosc scrollTop - nie bedzie z tym problemow? |
|
|
9.10.2010, 18:58:26
Post
#4
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) |
Raczej nie powinno być problemów - ale sprawdź - a jak będą to zablokuj Chrome'owi i Safari możliwość rozszerzania pola tekstowego za pomocą CSS:
Kod resize: none;
-------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
9.10.2010, 19:22:52
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
Wtedy napisałem bez dokładnego przeanalizowania kodu, ale się zrehabilituje:
Kod <textarea onscroll="scrolling();" id="scroll1" cols="50" rows="10" readonly="readonly">
</textarea><br> <button id="akceptuj" disabled="disabled">Akceptuje</button> <script> function scrolling(){ var scroll1 = document.getElementById('scroll1'); var akceptuj = document.getElementById('akceptuj'); akceptuj.innerHTML = (scroll1.scrollTop +' '+ (scroll1.scrollHeight-parseInt(scroll1.clientHeight ))); if(scroll1.scrollTop >= scroll1.scrollHeight-parseInt(scroll1.clientHeight )) { akceptuj.disabled = ""; } else { akceptuj.disabled = "disabled"; } } </script> -------------------- |
|
|
9.10.2010, 20:11:05
Post
#6
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) |
Dzieki wielkie za pomoc, kluczowa linijka okazalo sie:
Kod scroll1.scrollHeight - parseInt(scroll1.clientHeight) Dzieki temu moj kod wyglada teraz tak (i najwazniejsze - dziala)
i HTML
Pozdrawiam Ten post edytował kaźmirz 9.10.2010, 20:14:01 |
|
|
9.10.2010, 20:18:52
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
Pomyliłem się troszeczkę - swoją drogą też powinieneś to spr. -> usuń to parseInt - jak można zobaczyć w dokumentacji funkcja ta zwraca liczbę całkowitą
@down: bo wykonywana jest zbędna operacja -> poprawny/ładny kod to podstawa Ten post edytował kamil4u 9.10.2010, 21:40:25 -------------------- |
|
|
9.10.2010, 20:30:52
Post
#8
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) |
Wywalilem, ale przeciez i tak liczby w tych zmiennych sa liczbami calkowitymi
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 14:57 |