JQuery слайдер
Автор: mike
7 февраля 2013 года
Последнее время большую популярность приобрели движущиеся горизонтальные панели, известные также как "Слайдеры" или "Карусели". Оно и понятно, это простой и очень эффективный метод привлечь внимание пользователя. Слайдеры позволяют активнее влиять на поведение пользователей на сайте и продвигать необходимые материалы.
На сегодняшний день существуют сотни, если не тысячи готовых скриптов и модулей для организации слайдера. Вы можете вбить в Google строку "JQuery slider" и найдете десятки обзоров с ссылками на сотни готовых модулей "слайдеров" и "каруселей".
Основная проблема всех готовых модулей - универсальность, громоздкость и, иногда, сложность настройки. Создать слайдер с нуля, иногда, проще чем настроить готовый модуль, ибо простой слайдер - это лишь пара строк кода на JavaScript.
В этой небольшой заметке я покажу как с нуля создать свой слайдер.
С точки зрения HTML верстки слайдер состоит из двух основных частей - "окна" отображения (viewport) и основного содержимого, состоящего из нескольких слайдов. Ширина одного слайда обычно равна ширине окна отображения. Остальные слайды, не влазят в окно отображения просто не видны.
Ниже приведен пример самого простого слайдера с описанием в комментариях.
Код:
<styletype="text/css">
/* Основной контейнер для всех элементов слайдера. Его размеры 640x400*/
#slider {width:638px;height:400px;}
/* Фиксированный контейнер прокручиваемых элементов слайдера */
#slider_container {width:638px;height:500px;position:absolute;overflow:hidden;}
/* Плавающий контейнер прокручиваемых элементов слайдера. Ширина задается в свойстве style. */
#slider_moving_container {position:absolute;left:0px;}
/* Элемент слайдера. В этом примере можно было бы просто использовать изображение, но мы то пойдем дальше */
.slider_element {cursor:pointer;width:640px;height:500px;position:absolute;}
</style>
<!-- HTML верстка слайдера -->
<!-- Основной контейнер -->
<divid="slider">
<!-- Фиксированный контейнер -->
<divid="slider_container">
<!-- Плавающий контейнер -->
<divid="slider_moving_container">
<!-- Слайд №1. Вместо div можно было бы использовать просто изображение, но в слайды нужно будет вставить текст. -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/WEB-Development/HTML/';"id="slider_1"style="left:0;background-image: url('/np-includes/upload/2013/02/06/131036_original.jpg');">
</div>
<!-- Слайд №2 -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/Languages/PHP/';"id="slider_2"style="left:640px;background-image: url('/np-includes/upload/2013/02/06/131037_original.jpg');">
</div>
<!-- Слайд №3 -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/Languages/JavaScript/';"id="slider_3"style="left:1280px;background-image: url('/np-includes/upload/2013/02/06/131038_original.jpg');">
</div>
</div>
</div>
</div>
</body>
</html>
HTML код отобразит слайдер, но этого мало. Слайды должны автоматические меняться через некоторое время. Эта небольшая программа на JavaScript раз в 10 секунд меняет слайдер на очередной.
Код:
var slider_total=3;// Общее количество слайдов
function slider_auto_run(){
setTimeout(function(){
// Переход к следующему слайду
slider_position++;
// Переход от последнего к первому слайду
if(slider_position>slider_total) slider_position=1;
// Сдвиг слайда и анимация с помощью JQuery animate()
$('#slider_moving_container').animate({left:-((slider_position-1)*640)+'px'});
// Повтор
slider_auto_run();
},10000);/* Каждый 10 секунд */
};
slider_auto_run();
Результат работы примера можно посмотреть на демо-странице.
Чтобы слайдер имел законченный вид, его необходимо снабдить элементами навигации и добавить подписи к слайдам.
Код:
<styletype="text/css">
<!-- Общие стили слайдера (см. первый пример -->
#slider {width:638px;height:500px;}
#slider_container {width:638px;height:500px;position:absolute;overflow:hidden;}
#slider_moving_container {position:absolute;left:0px;}
.slider_element {cursor:pointer;width:640px;height:500px;position:absolute;}
<!-- Стили для стрелок навигации вправо и влево -->
#slider_right {width:25px;height:51px;display:block;background-image: url('/np-includes/upload/2013/02/06/131040.png');float:right;margin:265px 0 0 615px;position:absolute;}
#slider_left {width:25px;height:51px;display:block;background-image: url('/np-includes/upload/2013/02/06/131039.png');float:left;margin-top:265px;position:absolute;}
<!-- Стили для текстов подписей -->
#slider_info {background:#333;height:132px;width:596px;display:block;padding:22px 32px 0 32px;margin-top:346px;}
#slider_title {font-family:times; font-size:30px;color: #ffc;text-decoration:none;display:block;margin:0;}
#slider_description {font-size:12px;color:white;text-decoration:none;display:block;margin:7px 0 0 0;}
#slider_hint {font-size:11px;color:#ccc;margin:2px 0 0 0;}
</style>
</head>
<bodystyle="font-family:arial;font-size:12px;">
<divid="slider">
<divid="slider_container">
<divid="slider_moving_container">
<!-- Слайд №1 -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/WEB-Development/HTML/';"id="slider_1"style="left:0;background-image: url('/np-includes/upload/2013/02/06/131036_original.jpg');">
<!-- Текст подписи слайда -->
<divid="slider_info">
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_title">Невский Экспресс</a>
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_description">Электровоз ЧС200-004 с поездом "Невский Экспресс". Станция Рябово. Скорость 160 км/ч. Февраль 2013 года.</a>
</div>
</div>
<!-- Слайд №2 -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/Languages/PHP/';"id="slider_2"style="left:640px;background-image: url('/np-includes/upload/2013/02/06/131037_original.jpg');">
<!-- Текст подписи слайда -->
<divid="slider_info">
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_title">Санкт-Петербург - Брянск</a>
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_description">Электровоз ЧС2Т-1026 с поездом Санкт-Петербург - Брянск. Перегон Чудово-Московское - Гряды. В районе платформы Дубцы. Скорость 100 км/ч. Февраль 2013 года.</a>
</div>
</div>
<!-- Слайд №3 -->
<divclass="slider_element"onclick="location.href='http://www.codenet.ru/cat/Languages/JavaScript/';"id="slider_3"style="left:1280px;background-image: url('/np-includes/upload/2013/02/06/131038_original.jpg');">
<!-- Текст подписи слайда -->
<divid="slider_info">
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_title">"Сапсан"</a>
<ahref="http://www.codenet.ru/cat/WEB-Development/HTML/"id="slider_description">Электропоезд ЭВС1-005 "Сапсан" и электровоз ЧС2Т-1014 с поездом Санкт-Петербург - Ижевск. Перегон Чудово-Московское - Гряды. В районе платформы Дубцы. Скорость 100 км/ч. Февраль 2013 года.</a>
</div>
</div>
</div>
</div>
<!-- Элементы навигации по слайдам -->
<ahref="#"id="slider_right"></a>
<ahref="#"id="slider_left"></a>
</div>
Код автоматической смены слайдов немного изменился из-за реализации ручного управления (стрелки "влево" и "вправо"). Если пользователь по клику сменил слайд, то автоматическая смена слайдов выключается.
Код:
var slider_total=3;// Общее количество слайдов
var slider_auto=true; // Автоматическая смена слайдов - true, ручная смена слайдов - false
// Обработчик клика по навигационной стрелке "вправо".
$('#slider_right').click(function(){
// Выключение автоматической смена слайдов
slider_auto=false;
// Переход к следующему слайду
slider_position++;
// Переход к первому слайду, если слайды закончились
if(slider_position>slider_total) slider_position=1;
// Смена слайда с анимацией
$('#slider_moving_container').animate({left:-((slider_position-1)*640)+'px'});
returnfalse;
});
$('#slider_left').click(function(){
// Выключение автоматической смена слайдов
slider_auto=false;
// Переход к предыдущему слайду
slider_position--;
// Переход к последнему слайду, если необходимо
if(slider_position<1) slider_position=slider_total;
// Смена слайда с анимацией
$('#slider_moving_container').animate({left:-((slider_position-1)*640)+'px'});
returnfalse;
});
// Автоматическая смена слайдов. См. предыдущий пример.
function slider_auto_run(){
setTimeout(function(){
// Если включено ручное управление слайдами, то ничего не делать
if(!slider_auto)return;
slider_position++;
if(slider_position>slider_total) slider_position=1;
$('#slider_moving_container').animate({left:-((slider_position-1)*640)+'px'});
slider_auto_run();
},10000);
};
slider_auto_run();
Результат работы примера можно посмотреть на демо-странице.
Источник: http://feedproxy.google.com/~r/codenet/read/~3/JlCvQeIOLaA/


Поделиться статьей:
Акция: Закажи любой сайт до окончания акции и получи скидку + подбор семантического ядра + поисковую оптимизацию сайта Это позволит Вам получать еще больше трафика и соответственно клиентов из Интернета!
До конца акции осталось
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
|
Узнайте подробности акции у менеджеров компании по телефонам: 8-924-200-7194 г.Хабаровск 8-800-550-9899 Бесплатно по России (с 2:30 до 11:30 по Мск) |
Новые статьи и публикации
- 2023-01-26 » Установка и настройка Call tracking и Email tracking
- 2022-11-09 » 12 работающих формул продающих текстов
- 2022-11-09 » Дизайн сайта как SEO фактор ранжирования в 2022. Неочевидные нюансы в дизайне
- 2022-09-06 » Яндекс выложил в опенсорс фреймворк для ускорения разработки мобильных приложений
- 2022-08-18 » Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?
- 2022-08-01 » Яндекс выложил в опенсорс исходный код и документацию фреймворка userver
- 2022-07-29 » Как выявить медленные SQL запросы?
- 2022-07-29 » Читали мое письмо или нет? Как проверить с помощью php — Записки программиста
- 2022-07-26 » Я потратил 30 дней на анализ лучших кнопок призыва к действию, которые смог найти в Интернете
- 2022-06-29 » ТОП-15 актуальных трендов интернет-маркетинга для России: эксперт рассказал о тенденциях рынка в 2022 году
- 2022-06-21 » Почему «99 франков» — это не лучшая ценовая стратегия, и как теперь «рисовать» привлекательные цены
- 2022-06-16 » Пушкинская карта и Культура.РФ на Вашем сайте. Подключим к действующему сайту и(или) сделаем новый!
- 2022-05-18 » Анализ рынка интернет-маркетинга в РФ от Яндекс Дзен
- 2022-05-18 » Итоги развития рекламного рынка РФ за 2021 год по версии АКАР
- 2022-05-18 » Потребление мобильного трафика в Рунете достигло рекордных значений
- 2022-05-17 » Yappy, TenChat и другие. Обзор новых русских соцсетей и их возможностей
- 2022-05-17 » Реклама малого бизнеса. Разбор доступных каналов, инструментов аналитики и терминов
- 2022-05-16 » Зачем нужен счетчик Top@Mail.ru и как установить на сайт пиксель myTarget
- 2022-04-25 » Несмотря на отсутствие блокировки: в Youtube потеряли более 20% активных русскоязычных авторов
- 2022-04-25 » Чат-бот – что это такое
- 2022-04-19 » Комплексная услуга по разработке сайта или Интернет-магазина БЕСПЛАТНО!!!
- 2022-03-17 » Импорт большого дампа БД в OpenServer через консоль
- 2022-02-25 » Возможности и преимущества Google Analytics 4
- 2022-02-20 » Интеграция Интернет-магазинов и сайтов с маркетплейсами в несколько кликов – РЭДЛАЙН! ыходи на Маркетплейсы — кратно увеличь свои продажи!
- 2022-01-26 » Анализ и отслеживание конверсий
- 2022-01-26 » Создаем сайты на Тильде с маркетинговой проработкой!
- 2022-01-26 » Разработка сайтов на Wordpress "под ключ"
- 2022-01-18 » Основные UX-тренды 2022 года
- 2021-12-24 » Как увеличить продажи перед Новым годом
- 2021-12-23 » Ключевые запросы − основа эффективного продвижения
Предоставляем полный комплекс услуг по созданию, обслуживанию и продвижению сайтов по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.