Навигация для портфолио
Сделаем навигацию по портфолио с помощью jQuery. Изображения сгруппированы по разным тематикам, а навигация осуществляется в 2D пространстве с указанием положения на специальном индикаторе.
Разметка HTML
У нас будет основной контейнер div
с фоном, а внутри будут размещаться стрелки и контейнеры галереи.
<div id="portfolio"> <div id="background"></div> <div class="arrows"> <a href="#" class="up">Вверх</a> <a href="#" class="down">Вниз</a> <a href="#" class="prev">Предыдущий</a> <a href="#" class="next">Следующий</a> </div> <div class="gallery"> <div class="inside"> <div class="item"> <div><img src="/images/1.jpg" alt="image1" /></div> <div><img src="/images/2.jpg" alt="image2" /></div> <div><img src="/images/3.jpg" alt="image3" /></div> </div> <div class="item"> <div><img src="/images/4.jpg" alt="image4" /></div> <div><img src="/images/5.jpg" alt="image5" /></div> </div> <div class="item"> <div><img src="/images/6.jpg" alt="image6" /></div> <div><img src="/images/7.jpg" alt="image7" /></div> <div><img src="/images/8.jpg" alt="image8" /></div> <div><img src="/images/9.jpg" alt="image9" /></div> <div><img src="/images/10.jpg" alt="image10" /></div> <div><img src="/images/11.jpg" alt="image11" /></div> </div> <div class="item"> <div><img src="/images/12.jpg" alt="image12" /></div> <div><img src="/images/13.jpg" alt="image13" /></div> <div><img src="/images/14.jpg" alt="image14" /></div> <div><img src="/images/15.jpg" alt="image15" /></div> </div> </div> </div> </div>
CSS
Сначала определим стили для основного контейнера. Он будет иметь фиксированное положение по центру экрана (используется техника установки отрицательного значения полей и 50%):
#portfolio { position:fixed; top:50%; left:50%; z-index:1; width:1000px; height:500px; margin:-250px 0 0 -500px; }
Фон также будет фиксироваться. Для него установим изображение, которое будет создавать оптический эффект :
#background { position:fixed; top:0; left:0; width:100%; height:100%; z-index:2; background:url(../images/bg.png) no-repeat center; }
Галерея будет позиционироваться абсолютно:
#portfolio .gallery, #portfolio .gallery .inside { position:absolute; top:0; left:0; }
Также, галерея будет занимать все пространство портфолио:
#portfolio .gallery { width:100%; height:100%; overflow:hidden; }
Зафиксируем z-index внутреннего элемента div
, чтобы сохранить порядок:
#portfolio .gallery .inside { z-index:1; }
Теперь определим стили стрелок:
#portfolio .arrows a { position:absolute; z-index:3; width:32px; height:32px; background-image:url(../images/arrows.png); background-repeat:no-repeat; outline:none; text-indent:-9999px; }
И для каждой стрелки установим свои правила:
#portfolio .arrows .prev, #portfolio .arrows .up { display:none; } #portfolio .arrows .up, #portfolio .arrows .down { left:50%; margin-left:-16px; } #portfolio .arrows .prev, #portfolio .arrows .next { top:180px; } #portfolio .arrows .up { background-position:0 -64px; top:20px; } #portfolio .arrows .down { background-position:0 -96px; bottom:120px; } #portfolio .arrows .prev { background-position:0 -32px; left:60px; } #portfolio .arrows .next { background-position:0 0; right:60px; } #portfolio .arrows .up:hover { background-position:-32px -64px; } #portfolio .arrows .down:hover { background-position:-32px -96px; } #portfolio .arrows .next:hover { background-position:-32px 0; } #portfolio .arrows .prev:hover { background-position:-32px -32px; }
Элемент для изображения будет иметь следующие стили:
#portfolio .item { position:absolute; top:0; width:1000px; height:400px; }
Каждый контейнер изображения будет позиционироваться абсолютно и занимать все доступное пространство:
#portfolio .item div { position:absolute; left:0; width:100%; height:100%; }
Каждое изображение будет центрироваться. Для нашего примера используются изображения с шириной 600px, поэтому, если вы будет использовать отличные значения код надо будет немного модифицировать.
#portfolio .item div img { position:absolute; top:0; left:50%; margin-left:-300px; }
Теперь определим стили для индикатора положения, который будет добавляться динамически:
#portfolio .paths { position:absolute; bottom:60px; left:50%; margin-left:-30px; z-index:4; } #portfolio .paths div { position:absolute; top:0; } #portfolio .paths a { background:#333; display:block; position:absolute; left:0; outline:none; } #portfolio .paths a:hover, #portfolio .paths .active { background:#fff; }
JavaScript
Для инициализации плагина нужно включить в заголовок HTML файла следующие скрипты:
<script src="/js/jquery.js" type="text/javascript"></script> <script src="/js/portfolio.js" type="text/javascript"></script> <script src="/js/init.js" type="text/javascript"></script>
Первый - библиотека jQuery, второй - скрипт портфолио, третий - код инициализации.
var o = { init: function(){ this.portfolio.init(); }, portfolio: { data: { }, init: function(){ $('#portfolio').portfolio(o.portfolio.data); } } } $(function(){ o.init(); });
Плагин имеет по умолчанию следующие опции:
$('#portfolio').portfolio({ image: { width: 600, height: 400, margin: 20 }, path: { width: 10, height: 10, marginTop: 5, marginLeft: 5 }, animationSpeed: 400 });
Опции раздела image: width - ширина изображения, height - высота изображения, margin - поле между картинками. Опции секции path определяют параметры индикатора навигации: размеры и поля между клетками. animationSpeed - определение скорости анимации.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/4CXgSj3R4VE/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
Сейчас только тот является менеджером, кто заставляет знания работать. |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.