Так что, видимо, мои изображения не складываются друг на друга. Они все в ровных горизонтальных рядах. Не уверен, что не так. Я хочу, чтобы изображения были сложены друг на друга в виде сетки Pinterest / Masonry.
Вот шорткод, который я использую в моем индексном файле:
echo do_shortcode('[nggallery id="1"]');
Вот код, найденный в моем файле шаблона галереи Masonry:
<?php
/**
Template Page for the gallery overview
Follow variables are useable :
$gallery : Contain all about the gallery
$images : Contain all images, path, title
$pagination : Contain the pagination content
You can check the content when you insert the tag <?php var_dump($variable) ?>
If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
**/
?>
<script src="/wp-includes/js/jquery/jquery.masonry.min.js" type="text/javascript"> </script>
<script>
$(function(){
var $container = $('#container');
$container.imagesLoaded( function(){
$container.masonry({
itemSelector : '.box'
});
});
});
</script>
<style>
.brick {
display: block;
margin: 0px 10px 15px 10px;
float:left;
/* width:250px; */
height: auto;
}
</style>
<script>
jQuery( document ).ready( function( $ ) {
$('#wall').masonry({
// options
itemSelector : '.brick',
isAnimated: true,
animationOptions: {
duration: 500,
easing: 'linear',
queue: false}
});
</script>
<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
<div class="ngg-galleryoverview" id="<?php echo $gallery->anchor ?>">
<div id="wall">
<!-- Thumbnails -->
<?php $i = 0; ?>
<?php foreach ( $images as $image ) : ?>
<div class="brick">
<a class="thickbox" href="<?php echo $image->imageURL ?>" title="<?php echo $image->description ?>" <?php echo $image->thumbcode ?> >
<?php if ( !$image->hidden ) { ?>
<img title="<?php echo $image->alttext ?>" alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" <?php echo $image->size ?> />
<?php } ?>
</a>
</div>
<?php if ( $image->hidden ) continue; ?>
<?php if ($gallery->columns > 0): ?>
<?php if ((($i + 1) % $gallery->columns) == 0 ): ?>
<br style="clear: both" />
<?php endif; ?>
<?php endif; ?>
<?php $i++; ?>
<?php endforeach; ?>
<?php echo $pagination ?>
</div>
</div>
<?php endif; ?>
Вот как выглядит моя галерея на реальной странице:
http://steppic.com/original/896e07bdf2f759709b9ccc5f9eea9e28.png
Вы вызываете кладку дважды с разными параметрами.
Во-первых, ваш контейнер — «#container», а ваши элементы — «.box»:
var $container = $('#container');
$container.imagesLoaded( function(){
$container.masonry({
itemSelector : '.box'
});
Во втором случае ваш контейнер — «#wall», а ваши элементы — «.brick», и вы пропустили «});» в конце вашего (документа) .ready
jQuery( document ).ready( function( $ ) {
$('#wall').masonry({
// options
itemSelector : '.brick',
isAnimated: true,
animationOptions: {
duration: 500,
easing: 'linear',
queue: false}
});
}); //this was missing
Выберите правильный контейнер и предметы, и он должен работать
Я не совсем уверен, так как я не знаю, предоставили ли вы полный CSS, но, возможно, это сработает, если вы просто удалите margin: 0px 10px 15px 10px;
для класса brick
,
На странице примера кладки я только привел пример, добавив это поле в класс item
который соответствует вашему классу brick
и результат выглядит аналогично вашему скриншоту:
Пример масонства
Кроме того, похоже, что вы называете каменную кладку дважды — один раз для .container
— $container.masonry({...
и во второй раз #wall
— $('#wall').masonry({...
Вы можете проверить, работает ли он так, как задумано, когда уберете поле, как было предложено, и, возможно, также вызвать каменную кладку только один раз.
Обновить: Следующая настройка, которую вы можете попробовать, это удалить height: auto;
из класса brick
,
Я настроил пример кладки, добавив height: auto к элементу класса: Кладка с высоты: авто, как вы заметите, при удалении настройки высоты возникают некоторые проблемы: Кладка без высоты: авто
Для справки кладки: http://masonry.desandro.com/options.html