Всем привет!
Недавно меня попросили в шапке сайта сделать смену изображений.
Можно было бы обойтись использованием GIF или Flash-анимации, но это не вариант, так как заказчики любят часто менять свои планы и мне бы пришлось переделывать GIF или Flash-анимацию очень часто.
Так вот, сегодня в статье я выложу готовый код на JQuery для плавной смены картинок.
Да уж, какая-то маленькая статья у меня получилась. Не знаю, понравиться ли она поисковикам?
Не важно.
Итак, прежде чем заполучить код плавной смены картинок, рекомендую посмотреть демонстрацию эффекта:
Как вам?
Теперь сам код.
В CSS:
div#rotator {position:relative; }
div#rotator ul {margin: 0; }
div#rotator ul li { position:absolute; list-style: none;}
div#rotator ul li.show {z-index:-1;}
В HTML перед тегом </head>:
<script ENGINE="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
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'));
// Подключаем эффект растворения/затухания для показа картинок, 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>
В HTML перед тегом </body> в том месте, где нужно поместить картинки с плавным эффектом:
<div id="rotator"> <ul> <li class="show"><a href="https://google.ru/"><img src="https://bloggood.top/wp-content/uploads/2016/03/tesla.jpg" /></a></li> <li><a href="https://bloggood.top/"><img src="https://bloggood.top/wp-content/uploads/2016/03/hyperloop.jpg" /></a></li> <li><a href="https://Stepkinblog.top/"><img src="https://bloggood.top/wp-content/uploads/2016/03/Paypal.jpg" /></a></li> </ul> </div>
Чтобы показать картинки в случайном порядке, замените javascript на вот этот:
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
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>
Если вы знаете способ легче, пишите и делитесь кодом в комментариях. Только не забудьте код вставлять между
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 марта 2013
Прокомментировано:90
просмотров: 331671 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 275609 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 226702 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 193199 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 187093
11 Ответов на комментарий - Cкрипт плавной смены картинок на JQuery
Добавить комментарий
Метки: javascript, Вебмастеру, для сайта, украшение для header, эффекты для сайта


Шумящий эффект для картинки при наведении
Эффект для ссылки – радужная ссылка
Выделение цветом ссылок при наведении на параграф
Фиксированное меню при прокрутке сайта
Как настроить FTP соединение на Total Commander
Как получить значение ID при клике по слову?
Фоновая музыка для HTML-страницы. Урок№17

Ого. Классная вещь. Код я себе сохраню) А уж применение этому я найду. Спасибо!
Попробую.
Здравствуйте!
Спасибо за скрипт.
Установил, работает все, кроме ссылок. Отсылает только по ссылке последней картинки (а их 12) Пришлось ссылки пока удалить. Не подскажите, в чем причина?
С уважением, Виктор.
Здравствуйте!
Причину сказать не могу, так как не вижу, как вы прописали ссылки к картинкам.
Классно все получилось и ссылка на изображениях работает!! Просто Супер!!!
Спасибо! Все просто и работает.
Пожалуйста!
Здравствуйте! А как вместо картинок сделать тексты, объявления, к примеру?
Здравствуйте!
А Вы пробовали вместо картинок прописать текст?
Пробовал по другому — не получалось, я ведь не совсем «копенгаген» в этой теме…
Попробовал как Вы советете — всё ОК!
Работает отлично, подогнать стили и будет красота, спаибо!