Всем привет!
Недавно меня попросили в шапке сайта сделать смену изображений.
Можно было бы обойтись использованием 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.ru/wp-content/uploads/2016/03/tesla.jpg" /></a></li> <li><a href="https://bloggood.ru/"><img src="https://bloggood.ru/wp-content/uploads/2016/03/hyperloop.jpg" /></a></li> <li><a href="https://Stepkinblog.ru/"><img src="https://bloggood.ru/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
просмотров: 330346 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 274701 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 222534 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 187745 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 186564
11 Ответов на комментарий - Cкрипт плавной смены картинок на JQuery
Добавить комментарий
Метки: javascript, Вебмастеру, для сайта, украшение для header, эффекты для сайта
Ого. Классная вещь. Код я себе сохраню) А уж применение этому я найду. Спасибо!
Попробую.
Здравствуйте!
Спасибо за скрипт.
Установил, работает все, кроме ссылок. Отсылает только по ссылке последней картинки (а их 12) Пришлось ссылки пока удалить. Не подскажите, в чем причина?
С уважением, Виктор.
Здравствуйте!
Причину сказать не могу, так как не вижу, как вы прописали ссылки к картинкам.
Классно все получилось и ссылка на изображениях работает!! Просто Супер!!!
Спасибо! Все просто и работает.
Пожалуйста!
Здравствуйте! А как вместо картинок сделать тексты, объявления, к примеру?
Здравствуйте!
А Вы пробовали вместо картинок прописать текст?
Пробовал по другому – не получалось, я ведь не совсем “копенгаген” в этой теме…
Попробовал как Вы советете – всё ОК!
Работает отлично, подогнать стили и будет красота, спаибо!