Witam wszystkich i mam nadzieję, że czujesz się dobrze. Używam Isotope i poniżej możesz zobaczyć JavaScript, który napisałem. Uważam, że nie można wyśrodkować elementów li
, jeśli są one elementami izotopowymi. Aby zobaczyć, co mam na myśli przez centrowanie, zobacz zdjęcia poniżej. Udało mi się wyśrodkować cały Izotop na ekranie, ale potrzebuję również, aby elementy były wyśrodkowane, a nie tylko płynęły po lewej stronie.Elementy centrujące w izotopie
Zacznijmy od mojego kodu skryptu:
<script>
$(document).ready(function(e) {
$(".ullist li").addClass('element-item');
});
</script>
<script>
$(document).ready(function(e) {
// external js: isotope.pkgd.js
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.element-item',
//layoutMode: 'fitRows',
});
//$('.grid').isotope({ layoutMode : 'fitRows' });
// filter functions
var filterFns = {
// show if number is greater than 50
numberGreaterThan50: function() {
var number = $(this).find('.number').text();
return parseInt(number, 10) > 50;
},
// show if name ends with -ium
ium: function() {
var name = $(this).find('.name').text();
return name.match(/ium$/);
}
};
// bind filter button click
$('#filters').on('click', 'a', function() {
var filterValue = $(this).attr('data-filter');
// use filterFn if matches value
filterValue = filterFns[ filterValue ] || filterValue;
$grid.isotope({ filter: filterValue });
});
// change is-checked class on buttons
$('.secmenu ul a').each(function(i, buttonGroup) {
var $buttonGroup = $(buttonGroup);
$buttonGroup.on('click', 'a', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$(this).addClass('is-checked');
});
});});
</script>
<script>
$(function(){
var $container = $('.grid'),
$body = $('body'),
colW = 20,
columns = null;
$container.isotope({
// disable window resizing
resizable: true,
masonry: {
columnWidth: colW,
isFitWidth: true
}
});
$(window).smartresize(function(){
// check if columns has changed
var currentColumns = Math.floor(($body.width() -10)/colW);
if (currentColumns !== columns) {
// set new column count
columns = currentColumns;
// apply width to container manually, then trigger relayout
$container.width(columns * colW)
.isotope('reLayout');
}
}).smartresize(); // trigger resize to set container width
});
</script>
Podstawowa struktura HTML:
<ul class="ullist grid">
<li> ... </li>
<li> ... </li>
<li> ... </li>
<li> ... </li>
</ul>
Izotop działa całkiem dobrze bez żadnych problemów (jak dotąd). To jest mój obecny układ:
Sprawdziłem nawet tutaj i próbowałem użyć repozytorium Davida DeSandro, ale bez powodzenia. Więc proszę, czy możecie mi pomóc, aby osiągnąć powyższy układ? Dziękuję wszystkim z góry.
Tak ale w ten sposób nie będę mógł korzystać z animowanych efektów i filtrowania, które daje mi izotop. Chcę zaimplementować ten układ w kodzie izotopowym – justme
tylko dla informacji: flex nie jest nawet w IE9 obsługiwany i nie potrzebujesz pisać flex-direction: wiersz, ponieważ jest to wartość domyślna, a jeszcze inny: najczęściej używanym w niewłaściwy sposób jest nadawanie flex-elementom szerokości zamiast flex-basic. –