Создание отдельной страницы с галереей
Не многие готовы потратить своё личное время на создание красивых элементов на сайте. Подавляющее большинство предпочитает устанавливать специальные расширения, после чего занимаются их настройкой через панель управления. Это действительно удобно и быстро, но при использовании огромного количества расширений увеличиваются запросы к базе данных, а так же появляется задержка при открытии страниц (т.к. многие расширения в своём арсенале используют скрипты и они подгружаются вместе со страницей). О плюсах и минусах можно спорить долго, но мы сегодня постараемся обойтись своими силами. Я предлагаю создать отдельную страницу под галерею, она очень проста и интуитивно понятна. Абсолютно любой веб-мастер сможет из неё сделать не только галерею изображений, но и интерактивный путеводитель по сайту. Скажем, для дизайнера интерьера это отличное портфолио, а для магазина мебели это каталог товаров (изображения могут быть ссылками на разделы сайта).
Для реализации нашей задумки нам не требуется особой версии Joomla, шаблон тоже неважно какой используется. Все файлы загрузим в корень сайта и сошлёмся на них через основное меню. Давайте по порядку…
1. Подготавливаем изображения
Для работы необходимо найти 10 изображений в формате jpg. Так как в скрипте будут прописаны стороны одинакового размера, ищём квадратные картинки, разрешение не имеет значение. Лично я использовал 10 штук 1024х1024px. Вы можете взять и широкоформатные, но тогда для лучшего отображения придётся менять значения в скрипте (смотрите пункт 3).
Создаём на рабочем столе папку CATALOG, а внутри неё ещё одну images. Переименовываем наши изображения и кидаем в images:
На этом всё, с изображениями мы закончили.
2. Создаём HTML страницу
В папке CATALOG создаём файл index.html. Если кто не знает как, для этого есть текстовый редактор NotePad++.
После открываем полученный файл в этом же редакторе и вставляем туда этот код:
HTML код:
<!DOCTYPE html> <html> <head> <title>Gallery</title> <style type="text/css"> body { margin: 0; padding: 0; background: #e8ebec; } #images { white-space: nowrap; overflow: hidden; font-size: 0; line-height: 0; } #images span img { margin: 0; font-size: 15px; width: inherit; position: absolute; height: inherit; width: 100%; height: 100%; } #images span { display: inline-block; position: relative; } a img { border: 0; } #images span img:hover { box-shadow: 0px 0px 40px rgba(0,0,0,1); } #bars { background: #000; width: 100%; color: #fff; font-weight: bold; position: relative; padding: 30px 0 30px 0 ; z-index: 10000; box-shadow: 0px 0px 40px rgba(0,0,0,1); font-size: 56px; text-align: center; font-family: 'Myriad Pro', Helvetica, Arial, sans-serif; } #bars a { opacity: 1 !important; color: #fff; font-family: 'Myriad Pro', Helvetica, Arial, sans-serif; font-size: 20px; text-decoration: none; font-weight: bold; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script type="text/javascript" src="script.js"></script> </head> <body> <br><br> <div style="text-align: center;"><a href="ссылка на главную">Home</a></div> <br><br> <div id="images"> <span id="i1"><a href="#"><img src="images/image-1.jpg" /></a></span> <span id="i2"><a href="#"><img src="images/image-2.jpg" /></a></span> <span id="i3"><a href="#"><img src="images/image-3.jpg" /></a></span> <span id="i4"><a href="#"><img src="images/image-4.jpg" /></a></span> <span id="i5"><a href="#"><img src="images/image-5.jpg" /></a></span> <span id="i6"><a href="#"><img src="images/image-6.jpg" /></a></span> <span id="i7"><a href="#"><img src="images/image-7.jpg" /></a></span> <span id="i8"><a href="#"><img src="images/image-8.jpg" /></a></span> <span id="i9"><a href="#"><img src="images/image-9.jpg" /></a></span> <span id="i10"><a href="#"><img src="images/image-10.jpg" /></a></span> <span id="i7"><a href="#"><img src="images/image-7.jpg" /></a></span> <span id="i9"><a href="#"><img src="images/image-9.jpg" /></a></span> <span id="i5"><a href="#"><img src="images/image-5.jpg" /></a></span> <span id="i6"><a href="#"><img src="images/image-6.jpg" /></a></span> <span id="i10"><a href="#"><img src="images/image-10.jpg" /></a></span> <span id="i8"><a href="#"><img src="images/image-8.jpg" /></a></span> </div> </body> </html>
Я не стал создавать отдельный файл для стилей и написал всё внутри. Тем, кто планирует серьёзно изменить внешний вид, советую вывести стили в отдельный файл и редактировать всё там. Просмотрите код и обратите внимание на 63 строчку, там нужно написать ссылку на главную страницу вашего сайта. Каждая картинка обёрнута следующим образом <a href=”#”>image</a>
, вместо значков # можете установить ссылки на материалы. Теперь сохраните изменения.
3. Создаём скрипт для галереи
Создаём файл с именем script.js и размещаем его там же где и index.html.
Вставляем в него это и сохраняем:
Apache configuration код:
$(document).ready(function() { var imageWidth = 220; // Ширина картинки var imageHeight = 220; // Высота картинки $('#images span').css({'width' : imageWidth, 'height' : imageHeight}); function imageNumber() { $('.appended').remove(); $('#images span').removeClass(); $('.wrapper').each(function() { var wrapperContent = $(this).html(); $(this).replaceWith(wrapperContent); }); var windowWidth = $(window).width(); var numberOfImages = ($("#images span").length); var imagesPerRow = Math.ceil(windowWidth / imageWidth); if(numberOfImages % imagesPerRow != 0) { var numberOnRow = Math.round((1 - (numberOfImages/imagesPerRow % 1)) * imagesPerRow); var number = 0; while(number <= numberOnRow) { $('#i'+number).clone(true).appendTo($('#images')).attr('class', 'appended'); ++number; } var nuAppended = $('.appended').length; var nextA = parseFloat(numberOfImages)+1; while(nuAppended > 0) { $('.appended').each(function() { $(this).attr('id', 'i'+nextA); ++nextA; --nuAppended; }); } } var slices = $("#images span"); for(var i = 0; i < slices .length; i+=imagesPerRow) { slices .slice(i, i+imagesPerRow).wrapAll("<div class='wrapper'></div>"); } } function hovering() { $('#images .wrapper span img').hover(function() { $(this).css({ 'width' : '150%', 'height' : '150%', 'z-index' : '7000' }); }, function() { $(this).css({ 'height' : '100%', 'width' : '100%', 'box-shadow' : 'inset 0px 0px 20px rgba(0,0,0,0.8)', 'z-index' : '2000' }); }); $('#images .wrapper:not(:first, :last) span:not(:first-child) img').hover(function() { $(this).css({ 'right' : '-25%', 'bottom' : '-25%' }); }, function() { $(this).css({ 'z-index' : '2000', 'right' : '0', 'bottom' : '0' }); }); $('#images .wrapper:first span:not(:first) img').hover(function() { $(this).css({ 'right' : '-25%', 'top' : '0' }); }, function() { $(this).css({ 'z-index' : '2000', 'right' : '0', 'bottom' : '0' }); }); $('#images .wrapper:first span:first-child img').hover(function() { $(this).css({ 'left' : '0', 'top' : '0' }); }, function() { $(this).css({ 'left' : '0', 'top' : '0' }); }); $('#images .wrapper:not(:first, :last) span:first-child img').hover(function() { $(this).css({ 'left' : '0', 'top' : '-25%' }); }, function() { $(this).css({ 'left' : '0', 'top' : '0' }); }); $('#images .wrapper:last span img:not(:first)').hover(function() { $(this).css({ 'left' : '-25%', 'top' : '-50%' }); }, function() { $(this).css({ 'left' : '0', 'top' : '0', }); }); $('#images .wrapper:last span:first img').hover(function() { $(this).css({ 'left' : '0', 'top' : '-50%' }); }, function() { $(this).css({ 'left' : '0', 'top' : '0' }); }); } imageNumber(); hovering(); $(window).resize(function() { imageNumber(); hovering(); }); });
Вторая и третья строчка - это размер изображения. В данный момент установлены значения 220, то есть квадрат. Если планируете использовать вертикальные или горизонтальные картинки, то это значение придётся подбирать самостоятельно. Важно понять, если строка с изображениями закончилась (до правого края монитора остаётся пустота), то скрипт автоматически заполняет оставшееся место картинками из первого ряда.
4. Загружаем на сервер
Работу с кодом мы закончили, теперь надо поместить нашу папку на сервер. Используя FileZilla FTP Client, помещаем папку CATALOG в корень, это там где разархивировали саму Joomla.
Файл index.html лежащий в CATALOG уже доступен по прямой ссылке. Если ввести в браузере http://вашсайт.ru/CATALOG/index.html, то увидите готовую галерею (CATALOG обязательно большими буквами пишем).
5. Создаём пункт меню
Остаётся только добавить пункт меню для того чтобы посетители сайта смогли перейти в нашу галерею. В панели управления нажимаем «Создать пункт меню».
Заполняем заголовок, тип пункта меню ставим «Системные ссылки - Внешний URL», а в поле ссылка пишем полный путь http://вашсайт.ru/CATALOG/index.html. После сохранения проверяем на сайте всю проделанную работу.
Переходим в галерею, нажав по пункту меню «CATALOG» и возвращаемся при помощи ссылки «Home» в верхней части. В качестве примера вот ДЕМО.
Заключение
Это всего лишь пример простой галереи созданной без помощи расширений, однако люди с воображение смогут сделать на основе него гораздо больше. Галерея выравнивается по ширине экрана и автоматически подставляет картинки, если не хватает в ряде. Каждое изображение может быть ссылкой на материал, а при наведении курсора они выдвигаются на передний план. Все файлы будут грузиться из корня сайта в обход движка, а это значит, что не стоит беспокоиться о конфликте скриптов. Пользователь будет переходить между созданной нами галереей и сайтом на Joomla, друг от друга они не зависят.
Соседние материалы | ||||
Joomla! 3.6 уже здесь! | Делаем главную страницу Joomla шаблона уникальной |
Комментарии