JQuery слайдер
Cьогодні ми навчимося робити на своєму сайті простий JQuery слайдер. Слайдер простенький, що не адаптивний, але іноді дуже корисний.
Слайдер горизонтально прокручує зображення розташовані в ряд. Зображення повинні мати однакові розміри. Прокрутка зображень відбувається автоматично або за допомогою кнопок вперед - назад.
Встановлюється такий слайдер дуже просто. як зазвичай потрібно зробити кілька кроків по впровадженню скриптів і кодів, щоб домогтися потрібного результату.
HTML код
У тому місці, де хочете вивести сам слайдер, потрібно додати HTML код нашого майбутнього слайдера.
<div class="sl_ctr">
<div class="sldr">
<img src="/uploads/files/103510/183953/199449_html/images/1.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/2.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/3.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/4.jpg" alt="">
</div>
<div class="prv_b"></div>
<div class="nxt_b"></div>
</div>
CSS стилі
Далі в свій файл стилів, додаються стилі майбутнього слайдера.
.sl_ctr{
position:relative;
width:450px;
height:300px;
overflow:hidden;
}
.sldr{
position:relative;
width:10000px;
height:300px;
}
.sldr img{
float:left;
}
.prv_b, .nxt_b{
position:absolute;
top:135px;
display:block;
width:35px;
height:35px;
cursor:pointer;
}
.prv_b:hover, .nxt_b:hover{opacity:.6;}
.prv_b{
left:10px;
background:url(images/prv.png) no-repeat;
}
.nxt_b{
right:10px;
background:url(images/nxt.png) no-repeat;
}
Підключення скриптів
Наш слайдер використовує для роботи - jQuery. Тому потрібно підключити бібліотеку, якщо це не зроблено раніше і після неї наш скрипт.
<Script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js">
</ script>
Ну і сам скрипт, що буде здійснювати анімацію і управління слайдером. Використовуючи інструкцію, теж підключаєте його зручним способом.
<script>
$(function() {
var sldr = $('.sldr'),
sldrContent = sldr.html(),
slideWidth = $('.sl_ctr').outerWidth(),
slideCount = $('.sldr img').length,
prv_b = $('.prv_b'),
nxt_b = $('.nxt_b'),
sldrInterval = 3300,
animateTime = 1000,
course = 1,
margin = - slideWidth;
$('.sldr img:last').clone().prependTo('.sldr');$('.sldr img').eq(1).clone().appendTo('.sldr');$('.sldr').css('margin-left',-slideWidth);function nxt_bSlide(){interval=window.setInterval(animate,sldrInterval)}function animate(){if(margin==-slideCount*slideWidth-slideWidth){sldr.css({'marginLeft':-slideWidth});margin=-slideWidth*2}else if(margin==0&&course==-1){sldr.css({'marginLeft':-slideWidth*slideCount});margin=-slideWidth*slideCount+slideWidth}else{margin=margin-slideWidth*(course)}sldr.animate({'marginLeft':margin},animateTime)}function sldrStop(){window.clearInterval(interval)}prv_b.click(function(){if(sldr.is(':animated')){return false}var course2=course;course=-1;animate();course=course2});nxt_b.click(function(){if(sldr.is(':animated')){return false}var course2=course;course=1;animate();course=course2});sldr.add(nxt_b).add(prv_b).hover(function(){sldrStop()},nxt_bSlide);nxt_bSlide()});
</script>
Ну і розберемо основні настройки в скрипті.
Так само слайдер зупиняє свою анімацію, якщо на нього навести курсор.
Якщо все зробили і налаштували правильно, то слайдер вже повинен працювати на вашому сайті.
Повний код програми:
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width" />
<title>Простой слайдер с кнопками управления Вперед и Назад</title>
<style>
html {
min-height: 100%
}
body {
min-height: 100%;
margin:0;
padding:0;
font: 15px Tahoma;
color:#555;
}
.sl_ctr{
position:relative;
width:450px;
height:300px;
overflow:hidden;
}
.sldr{
position:relative;
width:10000px;
height:300px;
}
.sldr img{
float:left;
}
.prv_b, .nxt_b{
position:absolute;
top:135px;
display:block;
width:35px;
height:35px;
cursor:pointer;
}
.prv_b:hover, .nxt_b:hover{opacity:.6;}
.prv_b{
left:10px;
background:url(images/prv.png) no-repeat;
}
.nxt_b{
right:10px;
background:url(images/nxt.png) no-repeat;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(function() {
var sldr = $('.sldr'),
sldrContent = sldr.html(),
slideWidth = $('.sl_ctr').outerWidth(),
slideCount = $('.sldr img').length,
prv_b = $('.prv_b'),
nxt_b = $('.nxt_b'),
sldrInterval = 3300,
animateTime = 1000,
course = 1,
margin = - slideWidth;
$('.sldr img:last').clone().prependTo('.sldr');$('.sldr img').eq(1).clone().appendTo('.sldr');$('.sldr').css('margin-left',-slideWidth);function nxt_bSlide(){interval=window.setInterval(animate,sldrInterval)}function animate(){if(margin==-slideCount*slideWidth-slideWidth){sldr.css({'marginLeft':-slideWidth});margin=-slideWidth*2}else if(margin==0&&course==-1){sldr.css({'marginLeft':-slideWidth*slideCount});margin=-slideWidth*slideCount+slideWidth}else{margin=margin-slideWidth*(course)}sldr.animate({'marginLeft':margin},animateTime)}function sldrStop(){window.clearInterval(interval)}prv_b.click(function(){if(sldr.is(':animated')){return false}var course2=course;course=-1;animate();course=course2});nxt_b.click(function(){if(sldr.is(':animated')){return false}var course2=course;course=1;animate();course=course2});sldr.add(nxt_b).add(prv_b).hover(function(){sldrStop()},nxt_bSlide);nxt_bSlide()});
</script>
</head>
<body>
<center>
<h1>Cлайдер с кнопками управления Вперед и Назад.</h1>
<div class="sl_ctr">
<div class="sldr">
<img src="/uploads/files/103510/183953/199449_html/images/1.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/2.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/3.jpg" alt="">
<img src="/uploads/files/103510/183953/199449_html/images/4.jpg" alt="">
</div>
<div class="prv_b"></div>
<div class="nxt_b"></div>
</div>
</center>
</body>
</html>