Создание самого простого слайдера отзывов

Создание самого простого слайдера отзывов поможет Вашему сайту стать немного более респектабельным и не унылым. А простота его использования сделает его еще и мега доступным для тех, кто только начинает изучение web-программирования. Сразу хочу забежать вперед, в интернете существует тьма всяких слайдеров и тому подобной мишуры с кучей настроек. Здесь Вы такого не увидите, но ту работу, которую выполняет данный скрипт, он делает превосходно, и что самое главное понятно. Итак, приступим. Да, совсем забыл, не забудьте скачать демо и посмотреть, как он выглядит. Учтите, вместо фотографий можно использовать любой контент.
Создание самого простого слайдера отзывов
Итак, первым делом разложим наш скрипт по полочкам и сделаем его так, чтобы он мог работать даже в том случае, если у пользователя отключен JavaScript.
Шаг первый
Создание полноценной HTML структуры. Я буду копировать и вставлять код, который использовал непосредственно в своем проекте.
<div id="slideshow">
<div id="slidesContainer">
<div class="slide">
<div class="post_otzivy">
Отзыв 1
</div>
</div>
<div class="slide">
<div class="post_otzivy">
Отзыв 1
</div>
</div>
<div class="slide">
<div class="post_otzivy">
Отзыв 1
</div>
</div>
</div>
</div>
<a href="javascript:void(0);" class="control prev" id="leftControl">< Предыдущий отзыв</a>
<a href="javascript:void(0);" class="control next" id="rightControl">Следующий отзыв ></a>
Из кода видно, что мы используем элементы контроля нашего сайта с помощью слов. Но, если Вы все это добавите на сайт, то еще ничего не будет работать. Не волнуйтесь, все это мы будем украшать с помощью скрипта, а пока код CSS, который стилизует нам весь наш код. Заметьте, какой маленький у нас получается код.
/********************************** Слайдер *************************************/
#slideshow #slidesContainer {
margin:0 auto;
width:560px;
height:263px;
overflow:auto; /* разрешаем прокрутку */
position:relative;
}
#slideshow #slidesContainer .slide {
margin:0 auto;
width:540px;
height:263px;
}
/**
* Slideshow controls style rules.
*/
.control {
display:block;
width: 190px;
color: black;
position: relative;
cursor: pointer;
}
Как видим из кода, нам этот слайдер отзывов, если отключен javascript, будет просто делать прокрутку наших отзывов вниз. Это очень удобно. А теперь самое вкусное, что нужно сделать нам. Это вставить наш код javascript.
Но для начала надо убедиться, что у нас подключена библиотека jQuerry. Если нет, то подключаем ее.
<script src="http://code.jquery.com/jquery-latest.js"></script>
Далее, в самом начале нашего сайта, перед закрывающимся тегом </head> вставляем вот такой код в теги <script></script>. Все комментарии указаны непосредственно в коде.
<script>
$(document).ready(function(){
var currentPosition = 0;
var slideWidth = 560;
var slides = $('.slide');
var numberOfSlides = slides.length;
// Убираем прокрутку
$('#slidesContainer').css('overflow', 'hidden');
// Вставляем все .slides в блок #slideInner
slides
.wrapAll('<div id="slideInner"></div>')
// Float left to display horizontally, readjust .slides width
.css({
'float' : 'left',
'width' : slideWidth
});
// Устанавливаем ширину #slideInner, равную ширине всех слайдов
$('#slideInner').css('width', slideWidth * numberOfSlides);
// Прячем правую стрелку при загрузке скрипта
manageControls(currentPosition);
// Отлавливаем клик на класс .controls
$('.control')
.bind('click', function(){
// Определение новой позиции
currentPosition = ($(this).attr('id')=='rightControl')
? currentPosition+1 : currentPosition-1;
// Прячет / показывает элементы контроля
manageControls(currentPosition);
// Move slideInner using margin-left
$('#slideInner').animate({
'marginLeft' : slideWidth*(-currentPosition)
});
});
// Автопрокрутка, если не нужна, то просто удалите код ниже
var mycolslide = 1;
setInterval(function(){
if (mycolslide < 3) { //здесь указываем количество слайдов, которые есть у нас
currentPosition = currentPosition+1;
mycolslide = mycolslide + 1;
}
else {
currentPosition = 0;
mycolslide = 1;
}
// Прячет / показывает элементы контроля
manageControls(currentPosition);
// Move slideInner using margin-left
$('#slideInner').animate({
'marginLeft' : slideWidth*(-currentPosition)
});
},2000)// каждые 2 секунды будет меняться слайд
// Конец автопрокрутки
// manageControls: показывает или скрывает стрелки в зависимости от значения currentPosition
function manageControls(position){
// Спрятать левую стрелку, если это левый слайд
if(position==0){ $('#leftControl').hide() }
else{ $('#leftControl').show() }
// Спрятать правую стрелку, если это последний слайд
if(position==numberOfSlides-1){ $('#rightControl').hide() }
else{ $('#rightControl').show() }
}
});
</script>
Внимательно ознакомьтесь с этим кодом. Я постарался максимально его прокомментировать, но если у Вас есть вопросы, задавайте их в комментариях.
Свяжитесь с нами уже сейчас
- +7 (906) 272-38-19
Telegram / WhatsApp - info@cruelten.ru
- Cruelten
- Cruelten
Вы привыкли видеть здесь форму обратной связи. Ведь так? Ее делают почти все. Но исследуя поведение людей, мы пришли к выводу, что форма совершенно не нужна. В любом случае все сводится к обсуждению Вашего проекта в WhatsApp или Telegram. А зачем нам тратить Ваше время на заполнение различных форм? Поэтому, пишите в Telegram или в WhatsApp.