Использование ListJS с масонством
Я делаю проект, в котором я использую Listjs и Masonry вместе. Я хотел этого, когда искал и искал что-то, что кладка переставила предметы. Однако этого не происходит. Я оставляю здесь мой код:
HTML-код
<div class="container" id="posts">
<div class="row">
<div class="col-md-8">
<div class="grid list">
<div class="grid-sizer"></div>
<div class="grid-item"><div class='tag'>sports, fails</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>sports, football</div><img src='assets/images/posts/2.gif'></div>
<div class="grid-item"><div class='tag'>sports, tenis</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>sports</div><img src='assets/images/posts/3.gif'></div>
<div class="grid-item"><div class='tag'>fail</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>kid</div><img src='assets/images/posts/3.gif'></div>
<div class="grid-item"><div class='tag'>teste</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>tete</div><img src='assets/images/posts/5.gif'></div>
<div class="grid-item"><div class='tag'>1235</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>1235</div><img src='assets/images/posts/1.gif'></div>
<div class="grid-item"><div class='tag'>1235</div><img src='assets/images/posts/3.gif'></div>
<div class="grid-item"><div class='tag'>1235</div><img src='assets/images/posts/2.gif'></div>
<div class="grid-item"><div class='tag'>1235</div><img src='assets/images/posts/5.gif'></div>
</div>
<div class="col-md-12">
<div class="pagination-box">
<ul class="pagination"></ul>
</div>
</div>
</div>
<div class="col-md-4">
<div class="search-bar">
<input type='text' class='form-control search' placeholder="Search...">
</div>
</div>
</div>
<!-- /.row -->
</div>
JAVASCRIPT CODE
<script>
// init Masonry
var $grid = $('.grid');
$grid.masonry({
itemSelector: '.grid-item',
percentPosition: true,
columnWidth: '.grid-sizer',
gutter: 20,
stagger: 30
});
// layout Isotope after each image loads
$grid.imagesLoaded().progress( function() {
$grid.masonry();
});
</script>
<script>
var options = {
valueNames: [ 'tag' ],
page: 10,
plugins: [
ListPagination({})
]
};
var postslist = new List('posts', options);
postslist.on('searchStart', function(){
$grid.masonry('reloadItems');
});
</script>
1 ответ
После нескольких часов тестирования и отладки я смог найти решение своей проблемы. Мне пришлось снова инициализировать кладку в поиске и в нумерации страниц. Однако я обнаружил еще одну ошибку, когда делаю нумерацию страниц, чтобы div исчез. Решение, которое я нашел, состояло в том, чтобы добавлять div, когда я менял страницы
ОБНОВЛЕННЫЙ КОД JAVASCRIPT
<script>
// init Masonry
var $grid = $('.grid');
$grid.masonry({
itemSelector: '.grid-item',
percentPosition: true,
columnWidth: '.grid-sizer',
gutter: 20,
stagger: 30
});
// layout Isotope after each image loads
$grid.imagesLoaded().progress( function() {
$grid.masonry();
});
var options = {
valueNames: [ 'tag' ],
page: 10,
pagination: true
/*plugins: [
ListPagination({})
]*/
};
var postslist = new List('posts', options);
$('.search').on('input',function(){
$grid.masonry('destroy');
$grid.masonry({
itemSelector: '.grid-item',
percentPosition: true,
columnWidth: '.grid-sizer',
gutter: 20,
stagger: 30
});
});
postslist.on('updated', function(){
$( ".grid" ).append('<div class="grid-sizer"></div>');
$grid.masonry('destroy');
$grid.masonry({
itemSelector: '.grid-item',
percentPosition: true,
columnWidth: '.grid-sizer',
gutter: 20,
stagger: 30
});
});
</script>
Я надеюсь, что могу помочь кому-нибудь, когда это необходимо
Спасибо