Прежде всего, я не очень продвинутый код и имею тенденцию делать это только частично, поэтому, пожалуйста, извините весь ужасный/уродливый код! Я ценю, что уже есть некоторые решения, но я не могу заставить кого-либо из них работать с моим кодом, поэтому я бы очень хотел помочь!Функция стрельбы несколько раз при быстрой прокрутке
Я использую сетку изотопов и пытаюсь установить бесконечный свиток. Я хочу загрузить 10 изображений в то время, когда пользователь прокручивается вниз, беря эти изображения из массива и добавляя их к временному div.
Это работает отлично при медленной прокрутке, но как только вы быстро прокручиваете функцию, кажется, срабатывает несколько раз, она становится немного глючной и одновременно загружает множество изображений.
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var docuHeight = $(document).height();
if(scrollTop + windowHeight == docuHeight){
nextTenImages = imagesData.splice(0,10);
var content = ""
for (var i = 0; i < nextTenImages.length; i++) {
content +=
"<div class='box " + nextTenImages[i]["type"] + "'" + ">" +
"<div class='box-wrapper'>" +
"<img src='" + nextTenImages[i]["src"] + "' />" +
"</div>" +
"</div>"
};
$('body').append('<div id="temp-load"><div id="grid"></div></div>');
$('#temp-load > #grid').append(content)
$('#temp-load > #grid').children().css({
opacity: 0
});
var toAdd = $('#temp-load > #grid').html();
$container.isotope('insert', $(toAdd), function(){
$container.children().css({
opacity: 1
});
$('#temp-load').remove();
});
}
});
Концепция, как просят за дополнительной воды до пяти официанта. Каждый будет думать, что они были единственными. Что необходимо, если вы скажете 1 официанту, а затем воздержитесь от подробностей до тех пор, пока официант не вернется к вам. Аналогичным образом, после запуска функции загрузки изображения, подождите, пока изображение будет загружено, а длина документа будет обновлена до принятия нового триггера. – Iceman