Почему положение прокрутки изменяется при добавлении данных?

0

Я добавляю данные не в один div. Но когда я добавляю данные, моя позиция фокуса или прокрутки находится между добавлением содержимого. Фактически я добавляю данные, когда пользователь прокручивает вниз. Но когда я сохраняю изображения Google, он загружает некоторые изображения, а затем, когда пользователь переходит к последним строкам, он загружает больше изображений, не изменяя положение прокрутки.

Можем ли мы сделать в моем примере http://jsfiddle.net/cQ75J/10/

 var pages = [page_1, page_2, page_3, page_4, page_5];
    var backupPages=new Array();
    var totalPage = "page_" + pages.length;
    $("#current").html(pages.pop());


$("#fullContainer").scroll(function () {

     if ($(this).scrollTop() >= $(this)[0].scrollHeight - document.body.offsetHeight && pages.length) {
          // alert("--")
          $("#next").html('')
        $("#pre").html('')
        $("#pre").html($("#current").html());
        $("#current").html('');

        $(this).scrollTop(
           $("#current").html(pages.pop())
            .appendTo($("#fullContainer"))
            .height()
        );
        }

});

У меня есть один пример, в котором мне нужна такая же позиция прокрутки после добавления. Но он создает новый div в текущем div. Мне нужны новые данные в текущем (id) div а текущие данные идут на предыдущий (id) div http://jsfiddle.net/hBvrA/

  • 0
    Изменение положения прокрутки происходит где-то посередине между данными добавления
  • 0
    пожалуйста, проверьте мою вторую скрипку, она работает нормально, но проблема в том, что она создает новые div
Показать ещё 3 комментария
Теги:

1 ответ

0

проверьте обновленную скрипту: http://jsfiddle.net/hBvrA/1/

Я создал функцию для обновления html-структуры

function updateContents() {
    $("#pre").html($("#pre").html() + $("#current").html());
    $("#current").html("<div>" + pages.pop() + "</div>"); 
    $("#fullContainer").scrollTop($("#pre").height());
}

и вызывается в событии прокрутки с механизмом таймера ожидания:

var timerWait = 1000;
var timerFlag = false;

$("#fullContainer").scroll(function () {
    if ($(this).scrollTop() >= $(this)[0].scrollHeight - document.body.offsetHeight && pages.length) {
        // Clear timer
        clearTimeout(timerFlag);
        timerFlag = setTimeout(function() {
            updateContents(); 
        }, timerWait);
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню