Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Blokoda scroll'a
Forum PHP.pl > Forum > Przedszkole
atom90
Mam funkcje która przewija mi scrolla na sam doł kiedy dodawana jest nowa wiadomosc, ale chciałbym aby ta opcja nie wykonywała się gdy przewine wiadomości do gory by przeczytać starsye wiadomosci. Uciazliwe jest gdy czyta ktos starsze wiadomosci i nagle przyjdzie nowa i mu zjedzie na sam doł.

przewijanie u mnie wygląda tak, wraz z dodaniem nowej wiadomosci wykonuje się pryewinicie
Kod
$('#show').animate({
scrollTop: $('#massages').height()
}, "slow");
return false;


Jak sprawdyc to ye rusyzem suwak do gory i dopiero jak wroce sam na sam doł to ma znowu automatycznie scrolowac
Turson
Proponuję tak w momencie nowej wiadomości - określasz jakiś pułap, w którym okno nie jest scrollowane automatycznie, a wyskakuje powiedzmy jakiś alert z position:fixed , jak użytkownik sobie na to kliknie to go przniesie do góry. Chyba najprostsze
atom90
Nie wiem jak zabardzo za to sie zabrac, a alertów raczej nie musi być
djgarsi
Proponuję zrobić inaczej. Nie przewijaj ekranu, gdy przyjdzie wiadomość, ale wyrzucaj jakiś alert (może być dyskretny u dołu ekranu) o nowej wiadomości. Gdy ktoś klinkie ten alert, dopiero wtedy skroluj ekran do tej nowej wiadomości.
atom90
tylko niezbyt to wygodne to gdy np ktos jest na dole chatu i musi wciaz przewijac na. Dobry pomysl gdy ktos faktycznie czyta starsza wiadomosc, ale gdy jest w trakcie rozmowy to niewygodne
trueblue
A w jakim momencie miałoby działać automatyczne przewijanie?
atom90
W momencie gdy scroll bedzie na samym dole. Hmm pomysł mam taki zeby scrolowalo automatycznie gdy juz na ekranie jest za duzo wiadomosci w oknie diva wtedy pojawia sie suwak i gdy nadejdzie nowa wiadomosc przesuwa w dol. Tak mam. Ale gdy ktos zaingeruje w pozycje suwaka i przesunie wyzej automatyczne scrolowanie przestale dzialac. Ponowne jego aktywowanie nadejdzie ze zdazeniem kiedy uzytkownik sam zjedzie na sam dol scrola i od tego mamentu znow gdy przyjdzie wiadomosc bedzie automatycznie scrolowac. Nie wiem jak i na jakich parametrach stworzyc odpowiedni warunek do tego.
trueblue
Nie do końca rozumiem. Skoro ma przewijać na sam dół wtedy kiedy scroll jest na samym dole, to gdzie tu sens.

Ale jakby nie było.
Proponuję Ci rozwiązanie takie:
- umieszczasz w określonym miejscu/wysokości strony jakiś dowolny element,
- jeśli przychodzi nowa wiadomość i jeśli element jest widoczny (jest w viewport strony), to przewijasz, jeśli nie jest, to nie przewijasz.

https://github.com/teamdf/jquery-visible/
http://opensource.teamdf.com/visible/examp...demo-basic.html
http://www.appelsiini.net/projects/viewport
r4xz
http://jsfiddle.net/xoxfcfgx/
com
warunek i sprawdzasz gdzie sie scroll znajduje jeśli na dole to setTimeOut i animacja jak nie to nic wink.gif mam gdzieś gotowy kod ale nwm gdzie tongue.gif
atom90
Dzieki r4xz
Miałem jeszcze pare problemów przez to ze wenatrz diva wiadomosci przedstawiam w tabeli, ale metoda prob i bledów wkoncu zauwazylem ze musialem dodac jeszcze wysokosc przychodzacej nowej wiadomosci (tr) i wkoncu działa jak chciałem. Dziekuje jeszcze raz
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.