WT Masonry.js

WT Masonry.js

Скрипт masonry, позволяющий выводить изображения в виде кирпичной кладки. Скрипт оформлен в Joomla 4+ Web Asset, что позволяет использовать его в любых расширениях Joomla 4 и Joomla 5. Это плагин для Joomla-разработчиков. Он не предоставляет готовый к использованию код.

Описание

Подключение ассета в Joomla

<?php
$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); 
$wa->useScript('wtmasonryjs.local'); // local file 
$wa->useScript('wtmasonryjs.remote'); // from CDN 
$wa->useScript('imagesloaded.local'); // imagesLoaded.js from local file 
$wa->useScript('imagesloaded.remote'); // imagesLoaded.js from CDN

После этого в <head> страницы Joomla будет включен локальный или из CDN скрипт masonry.

Также в плагине добавлен ассет imagesLoaded, который нужно использовать при большом количестве картинок.

Пример кода

Пример из официальной документации скрипта

HTML

<div class="grid">
  <div class="grid-item">...</div>
  <div class="grid-item grid-item--width2">...</div>
  <div class="grid-item">...</div>
  ...
</div>

CSS

Все размеры элементов сетки masonry в Joomla задаются через Ваш CSS код

.grid-item { width: 200px; }
.grid-item--width2 { width: 400px; }

Инициализация скрипта с помощью jQuery

$('.grid').masonry({
  // options
  itemSelector: '.grid-item',
  columnWidth: 200
});

Инициализация скрипта без jQuery

var elem = document.querySelector('.grid');
var msnry = new Masonry( elem, {
  // options
  itemSelector: '.grid-item',
  columnWidth: 200
});

// element argument can be a selector string
//   for an individual element
var msnry = new Masonry( '.grid', {
  // options
});

Подключение imagesLoaded

Этот скрипт инициализирует masonry ещё раз после загрузки очередной картинки. Таким образом создаётся динамическое добавление изображений в кирпичную кладку.

Инициализация с jQuery

// init Masonry
var $grid = $('.grid').masonry({
  // options...
});
// layout Masonry after each image loads
$grid.imagesLoaded().progress( function() {
  $grid.masonry('layout');
});

Инициализация  без jQuery

document.addEventListener('DOMContentLoaded',() => {
    const masonryGrid = document.getElementById('masonry-test');
    var msnry = new Masonry(masonryGrid, {
        itemSelector: '.grid-item',
        columnWidth: 200,
        percentPosition: true
    });

    imagesLoaded( masonryGrid ).on( 'progress', function() {
        // layout Masonry after each image loads
        msnry.layout();
    });
});

 

 

Joomla

Тип расширения:
Плагин
Каталог:
System
Версия Joomla:
4.3.4, 5.0.0

Что нового

Исправления кода

Исправлено
Исправления ошибок в коде плагина

Joomla 5 ready

Добавлено
Успешно проверена работа плагина на Joomla 5

Расширения Joomla WebTolk

78 Всего расширений
11 Категорий
340 Выпущено версий
325181 Всего скачиваний
Корзина
Корзина пуста