Как-то работая над одним проектом, мне понадобилось сделать простой слайдер. И в этой статье я покажу, как я сделал, как мне кажется, самый простой слайдер на HTML и Jquery.
Пример слайдера (Смена первой картинки произойдет через 5сек, остальные через 3сек)
HTML код слайдера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<!DOCTYPE html> <html> <head> <script type="text/javascript" src='http://code.jquery.com/jquery-2.1.1.min.js'></script> <title>Ñëàéäåð</title> <style> .pic{ position:absolute; } </style> </head> <body> <div id="baner"> <img class="pic" src="logo_1.jpg" /> </div> <script> $(function(){ setInterval(function(){slad();}, 5000); function slad(){ if(typeof $k=='undefined'){ $k=1; } else{ if($k<3){ $k++; } else{ $k=1; } } $('<img class="pic" src="logo_'+$k+'.jpg" />').prependTo($('#baner')); $('.pic:eq(1)').fadeOut(2000); $('.pic:eq(2)').remove(); } }) </script> </body> </html> |
Как работает слайдер?
В моем варианте, слайдер состоит из трех картинок, картинки имеют одинаковую ширину и высоту. Название картинок представляет собой logo_1.jpg, logo_2.jpg, logo_3.jpg. К картинкам применяется CSS свойство position:absolute, при этом свойстве, картинки прячутся друг под другом, при этом мы всегда видим картинку, расположенную последней в HTML коде:
1 2 3 4 |
<img style="position:absolute;" src="logo_1.jpg" /> <img style="position:absolute;" src="logo_2.jpg" /> |
В этом примере, при свойстве – position:absolute, мы будем видеть только картинку logo_2.jpg, картинка logo_1.jpg будет спрятана под logo_2.jpg.
Чтобы обеспечить чередование картинок, нужно чтобы всегда было минимум две картинки. В моем варианте, за это отвечает функция slad(). В этой функции все время добавляется картинка перед видимой:
1 2 3 |
$('<img class="pic" src="logo_'+$k+'.jpg" />').prependTo($('#baner')); |
Далее, происходит постепенное исчезновение последней видимой картинки:
1 2 3 |
$('.pic:eq(1)').fadeOut(2000); |
И удаление этой же картинки:
1 2 3 |
$('.pic:eq(2)').remove(); |
Картинки выбираются за счет изменения индекса окончания файла.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if(typeof $k=='undefined'){ $k=1; } else{ if($k<3){ $k++; } else{ $k=1; } } |
Время исчезновения самой картинки задается в миллисекундах:
1 2 3 |
fadeOut(2000); |
А время появление следующей картинки задается:
1 2 3 |
setInterval(function(){slad();}, 5000); |
Если есть вопросы и замечания, пишите в комментариях.