Мой код написан здесь.
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, а затем прокрутить вниз вниз. Если прокрутка еще не внизу, ничего не делайте.
Я не уверен, какие части API DOM или jquery я могу использовать для этого, я пробовал несколько вещей и несколько застрял здесь, кажется, ничто не дает мне значения с точки зрения того, где находится полоса прокрутки, и сколько я могу прокручивать. Процентное значение было бы потрясающим, если бы я мог просто получить это.
Я не хочу использовать какие-либо библиотеки за пределами jQuery, это также означает отсутствие плагинов.
Я хочу получить то же поведение, которое мы видим в чатах SO, за исключением того, что он, похоже, использует плагин ScrollTo для выполнения того, что он делает.
Обновить.
Я не могу просто использовать .height() и .scrollTop, они не совпадают.
См. это: http://jsfiddle.net/qSx3M/6/