2010-01-03 4 views
0

Я работал над небольшим экспериментом, где, когда вы прокручиваете, на страницу загружаются новые записи.Проигрыватель прокрутки jQuery один за другим, действующий в WebKit

You can see a practical example here.

Теперь, если вы посмотрите на этот Firefox, все работает так, как должно. По мере того, как вы прокручиваете нижнюю часть страницы, начинайте загрузку, но только один за другим. Просмотрите его в WebKit, и вместо этого он начнет загружать все из них сразу и не останавливаться, пока не будет загружена всякая доступная запись.

Вот мой полный JavaScript, любезно JQuery:

$(document).ready(function(){ 
    var loadedNum = 1; 
    var loadInterval = 10; 
    function loadMoreItems(){ 
     for(i=loadedNum; i<loadedNum+loadInterval; i++){ 
      $.get("ajax.html", function(data){ 
       $("#loader").append($("li:nth-child("+loadedNum+")",data)); 
       loadedNum++; 
      }); 
     } 
    } 
    loadMoreItems(); 
    $(this).scroll(function(){ 
     var positionNum = $(this).scrollTop(); 
     var heightNum = $("#container").height(); 
     var topNum = $("#loader").position(); 
     var windowNum = $(window).height(); 

     var totalHeight = topNum.top+heightNum; 
     var totalScrolled = positionNum+windowNum; 

     if(totalHeight-totalScrolled<100){ 
      $.get("ajax.html", function(data){ 
       $("#loader").append($("li:nth-child("+loadedNum+")",data)); 
       loadedNum++; 
      }); 
     } 
     $("#position").css("top",totalScrolled-20); 
     $("#position").text("total left is "+(totalHeight-totalScrolled)+"px"); 
    }); 
}); 

Кто-нибудь есть идеи, где я неправильно?

ответ

0

Это работает для меня в Safari (у меня нет браузера WebKit, поэтому я не могу его протестировать), однако я думаю, проблема в том, что оставшаяся сумма прокрутки будет рассчитываться как слишком маленький.

+0

Safari - браузер WebKit. Двумя наиболее заметными браузерами WebKit являются Safari и Chrome, оба из которых, похоже, имеют одинаковую проблему. С Safari, если вы прокрутите до тех пор, пока не останется около 100 пикселей, он должен добавить только один. Однако по какой-то причине он имеет тенденцию добавлять несколько. Мне интересно, есть ли другой метод вместо проверки того, сколько осталось. – 2010-01-04 02:08:47

Смежные вопросы