У меня написан мой код здесь .
setInterval(
function (data){
var alreadyScrolled = $("#smallBox").height() >= $("#smallBox").get()[0].scrollHeight;
$("#smallBox").append(data + "<br />");
if (alreadyScrolled) {
$("#smallBox").scrollTop($("#smallBox").heightoffsetHeight)
}
},
1000,
Date()
);
<div id="largeBox">
<div id="smallBox">
</div>
<input />
</div>
То, что я пытаюсь сделать, это определить, находится ли полоса прокрутки внизу окна, и, если это так, добавить новые данные в div, а затем прокрутить обратно вниз. Если свиток не находится внизу, ничего не делать.
Я не уверен, какие части DOM или jquery API я могу использовать для достижения этой цели, я пробовал несколько вещей и несколько застрял здесь, кажется, ничто не дает мне значения с точки зрения места прокрутки Бар есть, и сколько я могу прокрутить. Процентное значение было бы здорово, если бы я мог просто получить это.
Я не хочу использовать какие-либо библиотеки за пределами jQuery, это означает, что плагинов тоже нет.
Я ожидаю того же поведения, которое мы наблюдаем в чатах SO, за исключением того, что, похоже, он использует плагин ScrollTo для выполнения своих функций.
Update.
Я не могу просто использовать .height () и .scrollTop, они не совпадают.
Смотрите это:
http://jsfiddle.net/qSx3M/6/