Ротатор баннеров (изображений) для сайта

    Разное    110

Содержание:

Ротатор баннеров (изображений) для сайта

Делаем ротатор баннеров (изображений) для сайта с помощью чистого Javascript и jQuery. Изображения меняются с определённым интервалом.

HTML:

<a href="#" id="adLink" title="" target="_blank">
<img src="images/1.jpg" id="adBanner" width="300" height="250" alt="" /></a>

Javascript:

var imgs = new Array("images/1.jpg", "images/2.jpg", "images/3.jpg");
var links = new Array("#", "#", "#");
var alt = new Array("баннер-1", "баннер-2", "баннер-3");
var title = new Array("title-1","title-2","title-3");
var currentAd = 0;
var imgCt = 3;
function cycle() {
if (currentAd == imgCt) {
 currentAd = 0;
}
var banner = document.getElementById('adBanner');
var link = document.getElementById('adLink');
banner.src = imgs[currentAd]
banner.alt = alt[currentAd]
banner.title = title[currentAd]
document.getElementById('adLink').href = links[currentAd]
currentAd++;
}
window.setInterval("cycle()", 5000);

HTML:

<div id="rotator">
 <ul>
  <li class="show"><a href="#"><img src="1.jpg" width="300" height="250"  alt="pic1" /></a></li>
  <li><a href="#"><img src="2.jpg" width="300" height="250"  alt="pic2" /></a></li>
  <li><a href="#"><img src="3.jpg" width="300" height="250"  alt="pic3" /></a></li>
 </ul>
</div>

CSS:

div#rotator {position:relative; height:150px; margin-left: 15px;}
div#rotator ul li {float:left; position:absolute; list-style: none;}
div#rotator ul li.show {z-index:500;}	

jQuery:

<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function theRotator() {
 // Устанавливаем прозрачность всех картинок в 0
 $('div#rotator ul li').css({opacity: 0.0});
 // Берем первую картинку и показываем ее (по пути включаем полную видимость)
 $('div#rotator ul li:first').css({opacity: 1.0});
 // Вызываем функцию rotate для запуска слайдшоу, 5000 = смена картинок происходит раз в 5 секунд
 setInterval('rotate()', 5000);
}

function rotate() {	
 // Берем первую картинку
 var current = ($('div#rotator ul li.show')?  $('div#rotator ul li.show') : $('div#rotator ul li:first'));
 // Берем следующую картинку, когда дойдем до последней начинаем с начала
 var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') :current.next()) : $('div#rotator ul li:first'));
 // Расскомментируйте, чтобы показвать картинки в случайном порядке
 // var sibs = current.siblings();
 // var rndNum = Math.floor(Math.random() * sibs.length );
 // var next = $( sibs[ rndNum ] );
 // Подключаем эффект растворения/затухания для показа картинок, css-класс show имеет больший z-index
 next.css({opacity: 0.0})
 .addClass('show')
 .animate({opacity: 1.0}, 1000);
 // Прячем текущую картинку
 current.animate({opacity: 0.0}, 1000)
 .removeClass('show');
};

$(document).ready(function() {		
// Запускаем слайдшоу
theRotator();
});
</script>

Сам сервис находится здесь. С его помощью можно сгенерировать ротатор и разместить его у себя на сайте.

Другие заметки по теме Разное