LINUX.ORG.RU

js: чЯтик и автопрокрутка вниз


0

0

Сабж. есть небольшой чат на js, в нем необходимо сделать автопрокрутку вниз, т.е. чтобы при попадании на страничку с чатом отображались последние сообщения внизу.

нашел кусок кода, отвечающий за скроллинг:

if (reverse != 0)
document.getElementById('shouts_' + shoutbox_id).scrollTop = document.getElementById('shouts_' + shoutbox_id).scrollHeight;
else
document.getElementById('shouts_' + shoutbox_id).scrollTop = 0;

под reverse имеется ввиду «последние сообщения внизу», по умолчанию последние вверху, старые внизу

Также пытался присвоить scrollTop различные значения - по ходу не хавает.

Еще важный момент, верстано все по XHTML 1.0, там вроде как scrollTop сбрасывается в 0 в некоторых случаях...

в общем ай нид э хелп!

★★★★★
Ответ на: комментарий от Apkawa

все, что мне выдал гугл я пересмотрел по 2-3 раза. и scrollTop(9999) тоже пробовал! не катит.

leg0las ★★★★★
() автор топика
Ответ на: комментарий от leg0las

добавь ради прикола:

document.getElementById('shouts_' + shoutbox_id).style=«border:10px solid red»;

Если рамки не будет - значит ты что-то не то выбираешь. А лучше бы ошибки интерпретатора отпостил, а то гадание - не самое лучшее занятие

simple_best_world_web_master
()
Ответ на: комментарий от KRoN73

А как к якорю переходить? Через scrollTo? location трогать крайне не желательно, ибо засирается история и в_самом_лучшем_мировом_синеньком_интернете такие фокусы вызывают щелчки (когда я делал persistent urls для флеша, то долго трахался, но решения так и не нашел против них)

simple_best_world_web_master
()
function needScrollToBottom(e) {
    var height = e.clientHeight;
    var scroll = e.scrollHeight;
    var position = e.scrollTop;
    if((height + position) >= scroll - 50) {
        return true; 
    }
    return false;
}
function scrollToBottom(e) {
	e.scrollTop = e.scrollHeight;
}

юзать так:

var e = document.getElementById("trololo");
var need = needScrollToBottom(e);
… добавляется контент …
if(need) scrollToBottom(e);
dmiceman ★★★★★
()
Ответ на: комментарий от KRoN73

>А зачем прокрутка? Безфреймовая страница и якорь внизу.
Это как? Можно описание на словах или ссылку на страницу?

anonymous
()
Ответ на: комментарий от anonymous

>Это как?

<a name=«bootom»> в конце страницы.

И document.location.hash='bottom', когда нужная прокрутка.

Можно описание на словах или ссылку на страницу?


Сейчас уже нет. У меня так чат лет 10 назад работал. «Без перезагрузки» (термина AJAX тогда ещё не было :))

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.