Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykrywanie scrollowania
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
lolo
Wlasnie sie zastanawiam nad czyms takim... Otoz czy da sie jakos wykryc scrollowanie jakiegos obiektu? Chodzi mi glownie o <textarea>. Widzialem to kiedys w jakiejs aplikacji (nie webowej) i tam bylo to wykorzystywane do sprawdzania, czu uzytkownik przeczytal warunki uzytkowania - jezeli scrollowal do konca to wtedy mozna bylo kliknac "dalej". Teraz sie tak zaczalem zastanawiac czy da sie cos takiego przelozyc na JS?
Oczywiscie nie widze wiekszego sensu w uzywaniu tego z tego powodu, ze moze to byc denerwujace/wprowadzajace w blad dla uzytkownika. Ale jako czysto teoretyczne zadanie jest to ciekawe. A wiec moja proba wyglada tak:

Kod
function checkIfRulesRead()
{
    do
    {
        document.forms[0].elements[1].disabled = true;
     }
     while( document.forms[0].elements[0].scrollHeight != document.forms[0].elements[0].scrollTop )
     document.forms[0].elements[1].disabled = false;
}


Oczywiscie potem jest

  1. <body onLoad="checkIfRulesRead()">


No coz... oczywiscie jest to nieskonczona petla, przegladarka ja wykonuje, pozera zasoby i sie zawiesza. Wiec w ta strone sie nie da. Jakies pomysly?

Pozdrawiam
ghostrider
  1. function check(elem)
  2. {
  3. if ( elem.scrollHeight == elem.scrollTop+elem.clientHeight ){
  4. elembtn = document.getElementById("btn");
  5. elembtn.disabled = false;
  6. }
  7. }
  8.  
  9. <textarea onmousemove="check(this)" cols="60" rows="15">
  10. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean in nisi. Quisque dictum justo laoreet elit. Curabitur in eros. Vestibulum ultrices varius sapien. Suspendisse et odio. Phasellus tincidunt porta lorem. Donec vestibulum euismod ante. In tempus lacus vitae metus. Vestibulum sit amet ipsum. Donec facilisis. Pellentesque vel mi sit amet massa tempus cursus. Fusce a nibh id magna blandit fringilla. Quisque sit amet felis. Quisque nibh. Mauris sit amet lectus.
  11.  
  12. Proin pulvinar, velit non imperdiet placerat, augue dolor varius felis, eu fringilla elit risus a purus. Mauris eros. Nunc purus. Sed porta, est venenatis placerat auctor, ipsum est feugiat sapien, eget pulvinar justo enim et neque. Donec blandit, risus in viverra scelerisque, mauris nunc rutrum urna, elementum cursus nibh nisl ut tellus. Praesent condimentum, dolor in aliquet mattis, leo orci pellentesque orci, id elementum sem felis eu dui. Nam et eros. Vestibulum et arcu. Donec mollis. Ut purus pede, convallis et, aliquam quis, interdum ac, metus. Maecenas quis augue. Duis cursus, ante id gravida pretium, nulla turpis hendrerit nibh, et lacinia tellus odio vel enim. Pellentesque cursus lorem eu massa. Duis ultrices aliquet magna. Curabitur ac odio. Suspendisse egestas, dolor ac rhoncus ornare, tortor sapien scelerisque sem, eget pharetra magna nisi ac dui. Quisque dolor. </textarea>
  13. <input id="btn" type="button" name="x" value="do" disabled="disabled" />


no i jest.
lolo
No niezle. Powiedzial bym nawet ze genialnie proste, po prostu genialne. Dzieki! Ale skoro tak dobrze poszlo, to trudniejszy orzech do zgryzienia: da sie to samo zrobic takze przy textarea ktore jest disabled? (Twoj przyklad wtedy nie dziala - przynajmniej w ff 1.0.7)

Pozdrawiam
ghostrider
oszukiwanie "disabled"

  1. <textarea onmousemove="check(this)" cols="60" rows="15" onFocus="this.blur()">


można tak, i chyba będzie OK
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.