Easy Slider — анимация вправо

Easy Slider — анимация вправо

Существует замечательный слайдер на основе маленького js плагина. Называется он easySlider. Последняя версия на момент написания статьи - 1.7. Описание плагина и все возможности можно найти на сайте cssglobe.com/easy-slider-17-numeric-navigation-jquery-slider.

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


Для начала создадим разметку, стили и инциализируем наш слайдер. Начнем с разметки:

<div class="slider-container">
	<div id="slider">
		<ul>
			<li style="width:640px; height:360px; background-color:yellow;"></li>
			<li style="width:640px; height:360px; background-color:green;"></li>
			<li style="width:640px; height:360px; background-color:red;"></li>
			<li style="width:640px; height:360px; background-color:pink;"></li>
		</ul>
	</div>
</div>

Теперь добавим немного стилей:

.slider-container {
	width:660px;
	height:380px;
	position:relative;
}
#slider { 
	width:640px; 
	position:relative;
	border:10px solid #eee ;
}
#slider ul {
	width:640px;
	height:360px;
	overflow: hidden;
	position:relative;
	padding:0;
	margin:0;
	list-style:none;
}
#slider ul li {
	width:640px;
	height:360px;
} 
#controls {
	position:absolute;
	right:15px;
	bottom:12px;
	text-align:center;
	width:100%;
	margin:0;
	padding:0;
	list-style:none;
}
#controls li {
	margin:2px;
	display:inline-block;
	width:16px;
	height:16px;
	overflow:hidden;
	text-indent:-9999px;
	border-radius:16px;
	border:1px solid #ededed;
	background:#fff;
	cursor:pointer;
}
#controls li.current {
	background:#ededed;
}

Инициализируем наш слайдер:

$(document).ready(function(){
   $("#slider").easySlider({
      auto: true,
      continuous: true,
	  numeric: true
   });
});

Вот и все. В таком виде слайдер будет прекрасно работать. Не забудьте подключить плагин и библиотеку jQuery.

А теперь изменим плагин таким образом, чтобы анимация была в обратную сторону. Для этого открываем файл easySlider1.7.js в редакторе и меняем 75 строку:

$("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px"));

На:

$("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-right","-"+ w +"px"));

Теперь 132 строку:

$("ul",obj).css("margin-left",(t*w*-1));

На:

$("ul",obj).css("margin-right",(t*w*-1));

134 строка:

$("ul",obj).css("margin-left",(t*h*-1));

На:

$("ul",obj).css("margin-right",(t*h*-1));

166 строка:

{ marginLeft: p },

На:

{ marginRight: p },

Внимание! Теперь идем в стили и добавляем элементу #slider ul свойство float:right;, чтобы получилось:

#slider ul {
	width:640px;
	height:360px;
	overflow: hidden;
	position:relative;
	padding:0;
	margin:0;
	list-style:none;
	float:right;
}

Вот и все. Теперь наш слайдер перемещается в противоположном направлении. Задача выполнена.


26.03.17
Для просмотра сайта обновите браузер.