Ротатор баннеров (изображений) для сайта
Делаем ротатор баннеров (изображений) для сайта с помощью чистого Javascript и jQuery. Изображения меняются с определённым интервалом.
Ротатор баннеров на Javascript
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);
Ротатор баннеров на jQuery
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>
Пример ротатора баннеров
Генератор ротатора баннеров
Сам сервис находится здесь. С его помощью можно сгенерировать ротатор и разместить его у себя на сайте.