Автор

Анимированный SVG слайдер

Анимированный SVG слайдер


Во время поиска в Интернете для вдохновения мы столкнулись с красиво оформленным веб-сайтом Honda HR-V. Когда вы переходите от раздела к другому, переход украшается анимированной фигурой, созданной с помощью элемента <canvas>.

 

ДЕМО
ИСХОДНИКИ

 

Мы решили создать что-то подобное, но вместо того, чтобы использовать холст, мы играли с SVG. Кроме того, вместо создания вертикального макета, который требует принудительной прокрутки для просмотра анимации, мы превратили весь ресурс в ползунок героя.

Используемые ресурсы:

  1. Snap.svg для анимации элементов SVG.
  2. Иконки из библиотеки Nucleo.
  3. Изображения из Unsplash.

 

Создание структуры

HTML структурирован в 3 основных элемента: неупорядоченный список ul.cd-slider, содержащий слайды, упорядоченный список ol.cd-slider-navigation для навигации слайдера и оболочку div.cd-svg, Используется для создания анимированной формы, видимой при переключении с одного слайда на следующий.

<section class="cd-slider-wrapper">
<ul class="cd-slider">
<li class="visible">
<div>
<h2>Animated SVG Slider</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, explicabo.</p>
<a href="#0" class="cd-btn">Article &amp; Download</a>
</div>
</li>

<li>
<!-- slide content here -->
</li>

<!-- additional slides here -->
</ul> <!-- .cd-slider -->

<ol class="cd-slider-navigation">
<li class="selected"><a href="#0"><em>Item 1</em></a></li>
<li><a href="#0"><em>Item 2</em></a></li>
<li><a href="#0"><em>Item 3</em></a></li>
<li><a href="#0"><em>Item 4</em></a></li>
</ol> <!-- .cd-slider-navigation -->

<div class="cd-svg-cover" data-step1="M1402,800h-2V0.6c0-0.3,0-0.3,0-0.6h2v294V800z" data-step2="M1400,800H383L770.7,0.6c0.2-0.3,0.5-0.6,0.9-0.6H1400v294V800z" data-step3="M1400,800H0V0.6C0,0.4,0,0.3,0,0h1400v294V800z" data-step4="M615,800H0V0.6C0,0.4,0,0.3,0,0h615L393,312L615,800z" data-step5="M0,800h-2V0.6C-2,0.4-2,0.3-2,0h2v312V800z" data-step6="M-2,800h2L0,0.6C0,0.3,0,0.3,0,0l-2,0v294V800z" data-step7="M0,800h1017L629.3,0.6c-0.2-0.3-0.5-0.6-0.9-0.6L0,0l0,294L0,800z" data-step8="M0,800h1400V0.6c0-0.2,0-0.3,0-0.6L0,0l0,294L0,800z" data-step9="M785,800h615V0.6c0-0.2,0-0.3,0-0.6L785,0l222,312L785,800z" data-step10="M1400,800h2V0.6c0-0.2,0-0.3,0-0.6l-2,0v312V800z">
<svg height='100%' width="100%" preserveAspectRatio="none" viewBox="0 0 1400 800">
<title>SVG cover layer</title>
<desc>an animated layer to switch from one slide to the next one</desc>
<path id="cd-changing-path" d="M1402,800h-2V0.6c0-0.3,0-0.3,0-0.6h2v294V800z"/>
</svg>
</div> <!-- .cd-svg-cover -->
</section> <!-- .cd-slider-wrapper -->

 

Добавление стиля

По умолчанию все слайды имеют opacity: 0, находятся в абсолютной позиции и размещаются одна поверх других top: 0 and left:0. Класс .visible добавляется к выбранному слайду, чтобы сделать его видимым opacity: 1.

.cd-slider-wrapper {
  position: relative;
}
 
.cd-slider > li {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.cd-slider > li.visible {
  /* selected slide */
  position: relative;
  z-index: 2;
  opacity: 1;
}

 

Обработка событий

Чтобы анимировать SVG, мы анимировали атрибут 'd' элемента пути внутри контейнера .cd-svg.

Прежде всего, мы должны были определить различные шаги анимации (в нашем случае 5 шагов для анимации от слайда к следующему и еще 5 шагов для анимации от слайда к предыдущему); В основном нам нужно было создать 10 различных элементов пути svg (все с одинаковым числом опорных точек для правильной работы анимации), как показано на следующем скриншоте (обратите внимание, что некоторые шаги кажутся пустыми, но все они содержат путь).

 

Как только пути определены, мы добавили в .cd-svg-cover атрибут data-stepn (по одному для каждого шага), равный атрибуту 'd' для определенного пути (чтобы легко получить его с помощью JavaScript).

Затем мы использовали метод animate (), предоставленный Snap.svg для анимации пути к следующему:

var svgCoverLayer = $('.cd-slider-wrapper').find('div.cd-svg-cover'),
	svgPath = Snap('#cd-changing-path'),
	path1 = svgCoverLayer.data('step1');
 
svgPath.animate({'d': path2}, 300, customMinaAnimation, function(){
	//...
});

 

Вот и всё!

Многие материалы на сайте взяты из блогов: "Все для веб-дизайнера Rudebox", "A free library of HTML, CSS, JS nuggets Codyhouse" - полностью переведен и представлен в ознакомительных целях!

vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru



Статьи по темеjQuery

Анимированный SVG слайдер

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


Анимированный SVG слайдер

Если на вашем сайте пользователи имеют много возможностей, то скорее всего, что такой проект нуждается в создании раздела часто задаваемых вопросов с информацией для поддержки ваших пользователей, кроме контактной формы. Мы собрали простой в настройке шаблон частых вопросов, который можно использовать, чтобы построить свою справку по сайту с удобной навигацией. Благодаря отзывчивому интерфейсу и реализации с помощью CSS и JQuery мы получаем кроссбраузерный раздел, с поддержкой устройств где выключен JS.


Анимированный SVG слайдер

Плавающая корзина, которая скользит, когда пользователь решает купить товар.


Анимированный SVG слайдер

Курсор, или указатель мыши, при просмотре сайтов в интернете обычно имеет вид стрелки, а при наведении на гиперссылки принимает вид руки-указателя. Между тем, в HTML предусмотрено большое разнообразие изображений курсора и их грамотное применение может быть весьма полезно веб-дизайнерам. Простыми средствами с помощью стилей можно переопределить вид курсора и выбрать один из более десяти доступных вариантов.


87 Публикаций

Раскрутка в соцсетях

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


Перейти в Блог

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

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

Close