/ / jQuery - div div s overflow-y: rol; - jquery, css3, použiteľnosť

jQuery - posúvanie div s pretekaním-y: posúvač; - jquery, css3, použiteľnosť

Mám div, ktorý obsahuje zoznam správ (je to chatová aplikácia). Keď je každá správa pridaná na koniec zoznamu, premýšľať Chcem, aby sa div posunul na spodok stránky. Dáva to zmysel, však? Takže - otázky # 1: Ako dostanem div, aby posunul dolu?

Teraz je ďalšia otázka trochu o použiteľnosti. Čo keď používateľ prejde nahor a prečíta niečo, čo bolo predtým uverejnené? Potom niekto zrazu pošle novú správu? To znamená, že jQuery sa znova posunie nadol. To môže byť pre používateľa veľmi nepríjemné. Aký je dobrý spôsob, ako to zvládnuť? Malo by sa posúvať nadol, iba ak je posúvacia lišta posúvaná úplne nadol už predtým, ako je pridaná nová správa? Ak áno, ako to urobiť v jQuery? Alebo existuje použiteľnejšie riešenie?

odpovede:

2 pre odpoveď č. 1

pozíciu posuvného panela získate window.pageYOffset a potom použite window.scrollTo(0, y) prejdite na nejaké miesto.

alebo môžete dokonca použiť $("#mydiv").scrollTop(newmsg_top) v jQuery prejdite nadol na novú správu.

kde var newmsg_top = parseInt($("#mydiv li:last").offset().top);

tu #mydiv je div so všetkými vašimi správami.
tak #mydiv li:last ukazuje na poslednú správu.
offset() vráti aktuálnu polohu prvku vzhľadom na dokument a môžete získať najvyššiu pozíciu .top

Ak chcete relatívnu pozíciu voči rodičovi, môžete ísť s position()

EDIT: Mám tu prácu tu, Prosim, pozri sa.</ Strong> Poznámka: Prejdete dole, iba ak si prezeráte posledný prvok. (Na vyriešenie problému s použiteľnosťou)


1 pre odpoveď č. 2

// toto je po pripojení prejde na koniec

$("#mydiv").append("My data");
var newmsg_top = parseInt($("#mydiv")[0].scrollHeight );
$("#mydiv").scrollTop(newmsg_top);