Эффектная галерея на jquery с использованием анимации спрайтов. Vol1

jquery галерея

От автора: Многие назовут эту статью «баяном», так как из интернета так и сыпятся различные плагины слайдеров и многие из них бесплатные. Но тут мы вспомним одно из приоритетных правил программиста: «Не стесняйся изобретать велосипед». Это лучший способ досконально разобраться в принципе работы приложения.
Я собственно сам решил разобраться в этой теме и начал писать слайдер с нуля, так и появился материал статьи, которую вы читаете.

Перед тем, как мы приступим к практическим шагам, я Вам рекомендую просмотреть демо-результат работы.

Также скачайте исходники себе на компьютер!

Что мы хотим получить?

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

Нам нужно, чтобы для активации слайдера достаточно было сделать див определённого класса и просто вложить в него нужные img картинки.

Нам нужно, чтобы слайд открывался поверх прошлого.

Нам нужно чтобы слайд красиво открывался по кусочкам.

Нам нужно оформить слайдер так, чтобы люди залипали и как зомби кликали по кнопочкам.

анимация спрайтов

Принцип работы планируемого приложения

При загрузке страницы, скрипт считает количество картинок в диве слайдера и создаёт столько же слайдов и присваивает им уникальные id. В слайдах скрипт создаёт 4 фрагмента, в которых соответствующая картинка используется как фон, и фон этот расположен в каждом фрагменте так, чтобы из всех фрагментов собиралась наша картинка. Изначально скрипт делает все слайды невидимыми, кроме первого, первый он выводит тогда, когда прогружается его img оригинал. Скрипт присваивает слайдам атрибут dir, в котором он определяет статус слайда (новый, текущий, остальные). Первому слайду, при загрузке присваивается статус – «текущий», остальным – «остальные».

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

При клике по ссылке, скрипт находит слайд с id соответствующим хрефу ссылки, ставит ему статус – «новый» и выдавливает его на третий уровень по оси z. Затем фрагменты вызванного слайда исчезают, а сам слайд появляется и фрагменты по очереди начинают красиво вылизать. После появления, слайдер переходит на второй уровень по оси z и ему присваивается статус – «текущий», а прошлый переходит на первый и получает статус – «остальные».

После проделанного, скрипт возвращает спрайты ссылок в исходную, а спрайт кликнутой поднимает на 50%.

Вот и всё.

План DOM

план DOM

HTML вёрстка

Вёрстка очень проста, так как мы планируем, как я уже говорил, максимально упростить процедуру подключения слайдера. Всё что нужно сделать – это подключить библиотеку jquery, подключить наш файл JavaScript, присоединить стили CSS, создать див с классом «myslider» и вставить в него наши картинки (Внимание! Картинки должны быть одного размера).

JavaScript

Я не просто так показываю JS до стилей CSS. Дело в том, что в файле CSS описаны стили элементов, которых нет в HTML вёрстке, эти объекты добавит скрипт.

Досконально изучите содержание JS файла! Каждое действие мной прокомментировано.
Вы должны понять принцип работы слайдера, чтобы легко его настраивать и дополнять.

Должен признаться, IE меня подставил с этим слайдером не по детски… Он нашёл какие-то ошибки в библиотеке jquery.

Для IE есть рабочий вариант — //mortalbonds.ru/stethem/
Он значительно проще, это было первое, что у меня получилось.

PS: Найдёте причину бага, пишите в комменты, буду очень благодарен!

CSS стили

Тут всё понятно…

Вот и всё!

Для закрепления материала!

Я уверен, что если вы попробуете изменить или дополнить код, то вы полностью поймёте принцип его работы.

Задача 1

Увеличьте количество фрагментов слайда и скорость их появления.

Задача 2

Присвойте img атрибут description и выводите его при клике по ссылке в удобном для вас месте.

На этом все. Пишите Ваши вопросы, отзывы, пожелания в комментариях!

киберсант-вебмастер

Автор: Беляев Михаил

Редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

E-mail: contact@webformyself.com

Метки: ,

Похожие статьи:

Комментарии Вконтакте:

Комментарии (30)