Регулятор уровня громкости с исопльзование слайдера jQuery UI

В данном уроке мы сделаем стильный элемент для регулировки уровня звука на основе слайдера из jQuery UI. Слайдер будет оформляться с помощью частей файла PSD со стилем для таких элементов.

Шаг 1. jQuery UI

Для работы нашего элемента требуется jQuery и jQuery UI. У нас есть два варианта для использования данных библиотек.

Первый - мы можем подключиться непосредственно к одному из следующих CDN: Google Ajax API CDN, Microsoft CDN и jQuery CDN. Такой вариант имеет массу преимуществ для реального проекта, но их обсуждение выходит за рамки нашего урока.

Второй, который будет использоваться в нашем уроке - сформировать и загрузить библиотеку jQuery UI непосредственно на официальной странице загрузки. Так как нам нужен только плагин Slider, выбираем только библиотеку Slider (с нужными модулями). В результате получится файл для загрузки, в котором будет отсутствовать лишнее. Затем присоединим библиотеки к нашему HTML документу (предпочтительно внизу страницы перед закрывающим тегом </body>). Такой вариант выбран нами по причине использования страницы в режиме оффлайн.

<script src="/js/jquery-1.7.2.min.js"></script>
<script src="/js/jquery-ui-1.8.21.custom.min.js"></script>

 

Шаг 2. Разметка HTML

Разметка для слайдера очень простая. Все необходимы элементы - подсказка, слайдер и индикатор уровня - размещаются внутри тега section. А jQuery UI будет автоматически генерировать все остальное.

<section>
	<span class="tooltip"></span>
	<div id="slider"></div>
	<span class="volume"></span>
</section>

 

Шаг 3. Устанавливаем слайдер

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

$(function() {
	$( "#slider" ).slider();
});

Нужно изменить конфигурацию слайдера для нашего маленького проекта.

Сначала сохраняем элемент слайдера как переменную.

var slider = $('#slider'),

Затем устанавливаем минимальное значение по умолчанию равным 35 (будет использоваться при первой загрузке).

slider.slider({
	range: "min",
	value: 35,
});

На данном шаге в браузере пока нечего смотреть, так как jQuery UI только генерирует разметку. Поэтому нужно установить стили для визуального представления слайдера.

 

Шаг 4. Стили

Прежде чем продолжить, нужно подготовить несколько текстур и иконок из прилагающихся PSD файлов.

На выше располагающемся рисунке представлены все изображения, которые потребуются для нашего проекта.

Начинаем с позиционирования слайдера в центре окна браузера и привязывания фона к элементу  body.

body {
	background: url('../images/bg.jpg') repeat top left;
}
section {
	width: 150px;
	height: auto;
	margin: 100px auto 0;
	position: relative;
}

Затем установим стили для подсказки, индикатора уровня, ручки управления и диапазона слайдера.

Слайдер

Так как мы не определяем максимальное значение для слайдера, то jQuery UI по умолчанию назначает его равным 100. Следовательно, мы можем использовать значение 100 px для ширины слайдера.

#slider{
	border-width: 1px;
	border-style: solid;
	border-color: #333 #333 #777 #333;
	border-radius: 25px;
	width: 100px;
	position: absolute;
	height: 13px;
	background-color: #8e8d8d;
	background: url('../images/bg-track.png') repeat top left;
  box-shadow: inset 0 1px 5px 0px rgba(0, 0, 0, .5),
  				 0 1px 0 0px rgba(250, 250, 250, .5);
  left: 20px;
}

Подсказка

Подсказка будет позиционироваться абсолютно сверху слайдера.

.tooltip {
	position: absolute;
	display: block;
	top: -25px;
	width: 35px;
	height: 20px;
	color: #fff;
	text-align: center;
	font: 10pt Tahoma, Arial, sans-serif ;
	border-radius: 3px;
	border: 1px solid #333;
  box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, .3);
	box-sizing: border-box;
	background: linear-gradient(top, rgba(69,72,77,0.5) 0%,rgba(0,0,0,0.5) 100%);
}

Индикатор уровня

Для нашего проекта будет формироваться визуальный эффект для индикации увеличения/ уменьшения громкости в зависимости от значения слайдера.

.volume {
	display: inline-block;
	width: 25px;
	height: 25px;
	right: -5px;
	background: url('../images/volume.png') no-repeat 0 -50px;
	position: absolute;
	margin-top: -5px;
}

 

Ручка управления

Стиль ручки достаточно простой. Она будет иметь в качестве фона иконку в виде металлического кружка. Также будет изменяться внешний вид курсора мыши для информирования пользователя о возможностях слайдера.

.ui-slider-handle {
	position: absolute;
	z-index: 2;
	width: 25px;
	height: 25px;
	cursor: pointer;
	background: url('../images/handle.png') no-repeat 50% 50%;
	font-weight: bold;
	color: #1C94C4;
	outline: none;
	top: -7px;
	margin-left: -12px;
}

Диапазон слайдера

Для использованного диапазона слайдера будет использоваться градиент:

.ui-slider-range {
	background: linear-gradient(top, #ffffff 0%,#eaeaea 100%);
	position: absolute;
	border: 0;
	top: 0;
	height: 100%;
	border-radius: 25px;
}

 

Шаг 5. Эффекты

А теперь поработаем сос специальными эффектами слайдера.

Подсказка

На данном этапе подсказка не содержит никакой информации. Мы планируем поместить в нее значение слайдера. Также положение подсказки по горизонтали будет соответствовать положению ручки.

Для начала сохраним элемент подсказки в переменную.

var tooltip = $('.tooltip');

Эффекты подсказки будут реализовываться в обработчике события slide.

slide: function(event, ui) {
	var value = slider.slider('value'),
	tooltip.css('left', value).text(ui.value);

Изначально подсказка будет скрыта:

А перед тем, как передвинуть ручку, будет выводиться подсказка с эффектом проявления:

start: function(event,ui) {
	  tooltip.fadeIn('fast');
},

При завершении движения ручки управления подсказка будет скрываться:

stop: function(event,ui) {
	 tooltip.fadeOut('fast');
},

Индикатор уровня громкости

Мы будем изменять иконку индикатора в соответствии со значением слайдера. Для реализации эффекта использется следующее условное выражение.

Элемент индикатора сохраняется в переменной:

Затем используем  условное выражение.

Когда значение слайдера будет меньше 5, иконка выводится совсем без полосок. Затем, по мере увеличения значения будут добавляться полоски.

if(value <= 5) {
	volume.css('background-position', '0 0');
}
else if (value <= 25) {
	volume.css('background-position', '0 -25px');
}
else if (value <= 75) {
	volume.css('background-position', '0 -50px');
}
else {
	volume.css('background-position', '0 -75px');
};

 

Собираем весь код вместе

$(function() {

	var slider = $('#slider'),
		tooltip = $('.tooltip');

	tooltip.hide();

	slider.slider({
		range: "min",
		min: 1,
		value: 35,

		start: function(event,ui) {
		  tooltip.fadeIn('fast');
		},

		slide: function(event, ui) {

			var value = slider.slider('value'),
				volume = $('.volume');

			tooltip.css('left', value).text(ui.value);

			if(value <= 5) {
				volume.css('background-position', '0 0');
			}
			else if (value <= 25) {
				volume.css('background-position', '0 -25px');
			}
			else if (value <= 75) {
				volume.css('background-position', '0 -50px');
			}
			else {
				volume.css('background-position', '0 -75px');
			};

		},

		stop: function(event,ui) {
		  tooltip.fadeOut('fast');
		},
	});

});

 

Готово

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/v2syqNPDFUM/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Регулятор уровня громкости с исопльзование слайдера jQuery UI | | 2012-07-16 16:57:48 | | Статьи Web-мастеру | | В данном уроке мы сделаем стильный элемент для регулировки уровня звука на основе слайдера из jQuery UI. Слайдер будет оформляться с помощью частей файла PSD со стилем для таких элементов.Шаг 1. | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: