Я использую следующий код, который я нашел из CodePen... Я ужасен в JS, и я надеялся, что кто-то сможет мне помочь.
- Как мне сделать так, чтобы элементы не повторялись, на данный момент они прокручиваются навсегда с 20 до "страницы" до того, как бесконечные прокрутки прокручиваются, я бы хотел, если в массиве будет 50 изображений, затем отобразите эти изображения, 20 на страницу и затем остановитесь.
- Я хочу разместить JS в отдельном файле, а затем использовать PHP для обработки некоторых результатов и вывода изображений, возможно ли каким-то образом переместить div, который отображает изображения из функции javascript? так что я могу разместить их в самом блоке в html?
Это код, который у меня есть в части HTML
<div id="SlideMiddle">
<div id="grid">
<div id="grid-content"></div>
</div>
</div>
и это javascript
<script>
var Imgs = [
'https://tympanus.net/Development/GridLoadingEffects/images/1.jpg',
'https://tympanus.net/Development/GridLoadingEffects/images/3.jpg',
'https://d13yacurqjgara.cloudfront.net/users/64706/screenshots/1167254/attachments/152315/SUGARSKULL-01.png',
'https://tympanus.net/Development/GridLoadingEffects/images/8.jpg',
'https://tympanus.net/Development/GridLoadingEffects/images/10.png',
'https://tympanus.net/Development/GridLoadingEffects/images/14.png',
'https://tympanus.net/Development/GridLoadingEffects/images/9.jpg',
'https://tympanus.net/Development/GridLoadingEffects/images/13.png',
'https://tympanus.net/Development/GridLoadingEffects/images/12.png',
'https://tympanus.net/Development/GridLoadingEffects/images/4.jpg',
'http://www.thedrum.com/uploads/news/172673/DzrMPF_DeezerPoster_MusicSoundBetterWithYou_03.jpg'
];
$(document).ready(function(){
$grid = $('#grid-content');
$.fn.revealItems = function($items){
var iso = this.data('isotope');
var itemSelector = iso.options.itemSelector;
$items.hide();
$(this).append($items);
$items.imagesLoaded().progress(function(imgLoad, image){
var $item = $(image.img).parents(itemSelector);
$item.show();
iso.appended($item);
});
return this;
}
$grid.isotope({
containerStyle: null,
masonry:{
columnWidth: 300,
gutter: 15
},
itemSelector: '.grid-item',
filter : '*',
transitionDuration: '0.4s'
});
$grid.imagesLoaded().progress(function(){
$grid.isotope();
})
function GenerateItems(){
var items = '';
for(var i=0; i < 20; i++){
items += '<div class="grid-item c'+(i%9)+' wow fadeInUp" ><a href=""><img src="'+Imgs[i%Imgs.length]+'" /></a></div>';
}
return $(items);
}
// SimpleInfiniteScroll
function Infinite(e){
if((e.type == 'scroll') || e.type == 'click'){
var doc = document.documentElement;
var top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
var bottom = top + $(window).height();
var docBottom = $(document).height();
if(bottom + 50 >= docBottom){
$grid.revealItems(GenerateItems());
}
}
}
$grid.revealItems(GenerateItems());
$(window).resize(function(){
var margin=40;
var padding=15;
var columns=0;
var cWidth=300;
var windowWidth = $(window).width();
var overflow = false;
while(!overflow){
columns++;
var WidthTheory = ((cWidth*columns)+((columns+1)*padding)+margin);
if(WidthTheory > windowWidth)
overflow = true;
}
if(columns > 1)
columns--;
var GridWidth = ((cWidth*columns)+((columns+1)*padding)+margin);
if( GridWidth != $('#grid').width()){
$('#grid').width(GridWidth);
}
});
$(window).scroll(Infinite);
new WOW().init();
})
</script>