/ Дизайн / Галерея Masonry в процентах

Галерея Masonry в процентах

HIT

02.06.2018

1669

Я более досконально изучил принцип работы галереи Masonry. Теперь с уверенностью могу сказать, что это отличная штука. В одной изранних статей была далеко не полная и не точная информация.

Галерею Masonry вполне можно сделать в процентном соотношении блоков. Продемонстрирую работу Masonry на примере вывода категорий Woocommerce.

Верстка плитки

<pre class="wp-block-preformatted"><div class="grid">
<?php 
$terms = get_terms( array(
    'taxonomy' => 'product_cat',
	'hide_empty' => true,
  	'pad_counts'=> true,
  	'orderby' => 'name',
        'parent' => $term->term_id,
	'exclude' => array(21,22,23,63)
) );  
?>  
	
<div class="grid-sizer"></div>

<?php if($terms) : ?>
<?php foreach($terms as $term) : ?>
  
<div class="grid-item <?php echo $term->term_template; ?>"> 

	<a href="<?php echo get_term_link($term->term_id);?>">
		<p><?php echo $term->name;?></p>
		<?php $thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
		$image = wp_get_attachment_url( $thumbnail_id );
		if (!empty($image)) {
		echo '<img src="'.$image.'" title="'.$term->name.'" alt="'.$term->name.'" 
		srcset="'.wp_get_attachment_image_srcset( $thumbnail_id, 'large' ).'" sizes="'.wp_get_attachment_image_sizes( $thumbnail_id, 'large' ).'">'; 
		}?>
	</a>
  
</div>
  
<?php endforeach; ?>
<?php endif; ?> 
</div></pre>

echo $term->term_template; — это вывод необходимой ширины блока, или ее отсутствие. Работает на решении выбора шаблона.

Стили плитки

/* New masonry */
.grid {margin-bottom: 30px;}
.grid-item.w2 {width: 66.66%;}
.grid-item.h2 {height: 800px;}

.grid-sizer {width: 33.33%;}
.grid-item {width: 33.33%; padding: 5px; height: 400px;}

.grid-item {height: 400px;}

@media screen and (max-device-width: 1024px) {  
	.grid-item {height: 300px;}
	.grid-item.h2 { height: 600px; }	
}

@media screen and (max-device-width: 800px) {  
	.grid-item {height: 250px;}
	.grid-item.h2 { height: 500px; }
	.grid-item p {font-size: 1.6rem;}
}

@media screen and (max-device-width: 425px) {  
	.grid-sizer {width: 50%;}
	.grid-item {width: 50%; height: 200px; padding: 3px;}
	.grid-item.w2 {width: 100%;}
	.grid-item.h2 {height: 400px;}
	.grid-item p {padding: 20px; font-size: 1.2rem;}
}

@media screen and (max-device-width: 320px) {  .grid-item, .grid-item.w2 {width: 100%;} }

Дополнительные стили оформления изображения и заголовка:

.grid-item img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    filter: brightness(100%);
  -o-transition: all 1.0s;
  transition: all 1.0s ease;
  -webkit-transition: all 1.0s ease 0s;	
}

.grid-item:hover img {filter: brightness(60%);}

.grid-item p {
    position: absolute;
    z-index: 9;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 50px;
    font-size: 2rem;
    font-weight: 400;
    color: #fff;
    text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.4);
    -o-transition: all 1.0s;
    transition: all 1.0s ease;
    -webkit-transition: all 1.0s ease 0s;
}

Скрипт плитки

jQuery(window).load(function(){
	 jQuery('.grid').masonry({ 
	percentPosition: true,
	columnWidth: '.grid-sizer',
	itemSelector: '.grid-item'	
	//columnWidth:300, 		 
	//gutter: 10	
	});
 });

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Галерея Masonry в процентах
Различные наработки по Woocommerce
Рекомендации для васРазличные наработки по WoocommerceOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.