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

Дата: 07.12.2013
Автор: Сергей
Источник: bulatlab.ru

Приветствую, дорогие друзья!  В этой первой статье, посвященной теме HTML CSS, хочу рассказать о довольно симпатичном слайдере с использованием различных современных методов перехода от одного изображения к другому. Все эти методы реализованы с помощью CSS3, что обеспечивает адекватную работу данного слайдера  во всех современных браузерах.

 

Для начала cсоздаем обычную html-страничку со следующим содержимым:

index.html 


В заголовке странички подключаем таблицы стилей. Это непосредственно основная наша таблица, отвечающая за отображение странички в браузере – style.css, и другая, не менее важная, - animate.css, которая по существу является библиотекой, отвечающей  за эффекты анимации средствами CSS3. Также подключаем популярную библиотеку jQuery и наш скрипт , с помощью которых мы будем осуществлять нужные манипуляции элементами.

 

В теле страницы располагаем список необходимых нам  изображений, которые представлены в виде ссылок с разными свойствами bacrground-image. Кроме того в основной таблице стилей используем background-size: cover для подгонки соответствующих изображений по размерам области, выделенной для ссылок.

 

Также определяем другие свойства элементов:

 style.css

*{margin:0;	padding:0;}
body{position:relative;>min-height:500px;}
a, a:visited {outline:none;	color:#1c4f64;}
a:hover{	text-decoration:none;}
section, footer, header{display: block;}
/*----------------------------*/
#photos{
	margin:0 auto;
	padding-top:120px;
	width:650px;
	position:relative;
}
#photos li{
	position:absolute;
	width:650px;
	height:650px;
	overflow:hidden;
	background-color:#fff;
	box-shadow: 1px 1px 1px #ccc;
	z-index:10;
	-webkit-animation-duration: 1s;
	-moz-animation-duration: 1s;
	animation-duration: 1s;
}
#photos li a{
	position:absolute;
	top:6px;
	left:6px;
	right:6px;
	bottom:6px;
	background-size: cover;
	text-indent:-9999px;
	overflow:hidden;
}

/*----------------------------*/
a.arrow{
	width:33px;
	height:33px;
	background:url('arrows.png') no-repeat;
	position:absolute;
	top:440px;
	opacity:0.9;
}
a.arrow:hover{
	opacity:1;
}

a.arrow.previous{
	left:50%;
	background-position:0 0;
	margin-left:-380px;
}
a.arrow.next{
	right:50%;
	background-position:-33px 0;
	margin-right:-380px;
}

 

Добавляем наш скрипт script.js:

$(function() {
	var ss = [  'fadeOut', 
               'fadeOutDown', 
               'fadeOutUpBig', 
               'bounceOut', 
               'bounceOutDown', 
               'hinge',
               'bounceOutUp', 
               'bounceOutLeft', 
               'rotateOut', 
               'rotateOutUpLeft', 
               'lightSpeedOut', 
               'rollOut'];
	var mm = [  'fadeIn', 
               'fadeInDown', 
               'fadeInRight', 
               'bounceIn', 
               'bounceInRight', 
               'rotateIn', 
               'rotateInDownLeft', 
               'lightSpeedIn', 
               'rollIn', 
               'bounceInDown' ]; 
	var photos = $('#photos'),	ignoreClicks = false;
   
	//ПРИ НАЖАТИИ СТРЕЛКИ ВПЕРЁД
	$('.arrow.next').click(function(e){
		e.preventDefault();
		// выбираем перзний элемент (*оследний)
		var elem = $('#photos li:last');
		// применяем случайный эффект анимации
		elem.addClass('animated')
		elem.addClass( ss[Math.floor(ss.length*Math.random())] );
		setTimeout(function(){
      elem.attr('class','').prependTo(photos);},2000);
	});
   
   
	// ПРИ НАЖАТИИ СТРЕЛКИ НАЗАД
	$('.arrow.previous').click(function(e){
		e.preventDefault();
		// выбираем нижний элемент(первый)
		var elem = $('#photos li:first');
		// передвигаем фотографию вверх и применяем случайную анимацию
		elem
         .appendTo(photos)
			.addClass('animated')
			.addClass( mm[Math.floor(mm.length*Math.random())]);
		setTimeout(function(){elem.attr('class','');},2000);
	});

	
});

В этом скрипте в начале определяем необходимые для работы переменные, а затем создаём обработчики кликов по стрелкам, работа которых ясна из комментариев скрипта.

И это всё! До встречи! :)

 

 

Оценить эту статью:   
Просмотров: 1651
Комментариев: 0
Оценка: (0)


Гости не могут добавлять комментарии, войдите или зарегистрируйтесь.
Поделитесь этой страничкой в социальных сетях