Сейчас: 04:10:52   20-го апреля 2024 г.
UsefulScript.ruСкриптыГрафикаСлайд-шоу с плавным переходом
12
40

Слайд-шоу с плавным переходом изображений

Данный скрипт является логическим развитием ранее рассмотренных на нашем сайте скриптов плавной смены изображений и слайд-шоу.


Таким образом, при помощи jQuery удалось добиться реализации плавного перехода в момент смены изображений, сохранив функции по выбору нужного изображения, остановки и продолжения работы скрипта автоматической смены пользователем.


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


Чтобы оценить работу скрипта слайд-шоу с плавным переходом изображений, обратите на плавную смену картинок ниже:


Посещаемость по дням

Посещаемость по дням



Как Вы могли заметить, помимо картинок меняются еще и подписи к ним с интервалом в три секунды. При этом плавный переход изображений (подписей) достигается за счет плавного изменения прозрачности двух изображений (подписей), находящихся друг под другом. Также имеются ссылки "Стоп" и "Продолжить", которыми можно прерывать и возобновлять автоматическую смену изображений. При необходимости можно добавить ссылки для перехода к нужному изображению (например, "Давай вторую" и "Давай четвертую").


Для получения на своем сайте аналогичного слайд-шоу с плавным переходом изображений, Вам потребуется подключить библиотеку jQuery следующим образом:

JavaScript код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>

В том месте Вашей странички, где Вы планируете разместить меняющие изображения с подписями к ним, добавите следующий код:

HTML код:
<div style="height:350px;">
 <
img src="image/li_11.png" alt="" id="slide_show" style="position:absolute;">
 <
img src="image/li_11.png" alt="" id="slide_show2"
 
style="position:absolute;display:none;">
</
div>
<
div style="height:20px;">
 <
p id="slide_text" style="position:absolute;">Посещаемость по дням</p>
 <
p id="slide_text2" style="position:absolute;display:none;">Посещаемость по дням</p>
</
div>

При необходимости, Вы можете добавить ссылки для управления сменой изображений:

HTML код:
<div class="navi">
 <
b onclick="chgImg(2)">Давай вторую</b>&nbsp;&nbsp;
 <
b onclick="chgImg(4)">Давай четвертую</b><br><br>
 <
b onclick="clearInterval(go);">Стоп</b>&nbsp;&nbsp;&nbsp;
 <
b onclick="clearInterval(go);go=setInterval('chgImg(0)',3000);">Продолжить</b>
</
div>

Для ссылок управления не забудьте добавить стили:

HTML код:
<style type="text/css">
    .
navi text-aligncenter; }
    .
navi b colorbluecursorpointertext-decorationunderline; }
</
style>

Где-нибудь ближе к концу странички разместите следующий JavaScript код, который будет делать всю работу по плавной смене изображений и подписей к ним, а также осуществлять переход к нужному изображению по управляющим ссылкам:

JavaScript код:
<script type="text/javascript">
var 
imgs = ['image/li_11.png','image/li_22.png','image/li_33.png','image/li_44.png'];
var 
text = ['Посещаемость по дням','<a href="script.php">Посещаемость по неделям</a>',
'<font color="red">Посещаемость по месяцам</font>','<b>Среднесуточная</b>'];
var 
0;
var 
next "";
$(
document).ready(function(){ go setInterval("chgImg(0)"3000); });

function 
chgImg(number) {
 if (
number!=0) {
     
clearInterval(go);
     $(
'[id^=slide_show], [id^=slide_text]').stop();
     
number-2;
     
go setInterval("chgImg(0)"3000);
 }
 
n++;
 if (
n>=imgs.length0;
 if (
next==""next 2;
 else 
next "";

 $(
'#slide_show'+next).attr('src',imgs[n]);
 $(
'#slide_text'+next).html(text[n]);
 $(
'[id^=slide_show], [id^=slide_text]').fadeToggle(2000);
}
</script>

При желании данный код можно уменьшить за счет отказа от управляющих ссылок.

Дата создания: 22:40:16 06.05.2014 г.
Посещений: 9970 раз(а).

Комментарии посетителей (17 шт.):
Андрей
0
# 2931
(17:24:52  28.12.2015 г.)

Добрый день.
Обратил внимание, что не все изображения плавно сменяются. И кнопка "стоп" не работает.
Просматривал через FF.
Ответить

Administrator
0
# 2933
(22:02:32  29.12.2015 г.)

Действительно данный эффект возникал в том случае, если многократно нажать на ссылку "Продолжить", т.к. создавалось несколько таймеров, которые мешали друг другу. Исправляется легко - сначала прерываем таймер, а потом создаем новый:
<b onclick="clearInterval(go);go=setInterval('chgImg(0)',3000);">Продолжить</b>
Ответить

Ольга
0
# 4338
(01:38:32  23.08.2018 г.)

Здравствуйте, подскажите пожалуйста, 3 момента:
1. Как сделать ссылку предыдущая, если просто добавить
<a onclick="chgImg(-1)" title="Назад">Предыдущая</a>, то есть переход назад имеется, но он временный, а нужно чтобы после клика можно было "задержаться и посмотреть"

2. Как сделать, чтобы слайды начали работать, только после клика на "Старт", а не сразу

3. Сложно ли реализовать, чтобы при наведении курсора на изображение, режим слайдов останавливался, как при нажатии на ссылку "Стоп".

Буду Вам очень благодарна за помощь.
Ответить

Парк-Отель
0
# 3023
(23:58:03  06.02.2016 г.)

Спасибо за ответ в предыдущей ветке! Я не вебмастер, а обыкновенный пользователь и мне не всегда понятна работа с кодами. В данном конкретном случае у меня что-то не получается... У меня всего 8 картинок, которые должны ротироваться, они имеют названия vip1, vip2, vip3 и т.д. до vip8. И одна картинка "бронировать", которая должна все время находиться на картинках сверху (она активная ссылка). Я вас очень прошу, помогите! Как, что и где мне расположить в коде, потому что у меня не получается. Вот посмотрите предварительный результат, но там почему-то только две картинки в ротации...
Ответить

Administrator
0
# 3024
(00:36:31  07.02.2016 г.)

Удалите изображения с id="slide_show3" и т.д. Их должно быть всего два: с id="slide_show" и id="slide_show2". Так же в скрипте в массиве imgs укажите правильные пути к изображениям на вашем сайте.
P.S. Ссылку на Ваш сайт удалил.
Ответить

Парк-Отель
0
# 3028
(13:58:05  07.02.2016 г.)

Не получается, хоть тресни! Я не вебмастер, к сожалению...
Остальная часть комментария и ответ на него были перенесены на наш форум.
Ответить

Парк-Отель
0
# 3029
(16:33:17  07.02.2016 г.)

Спасибо большое! Еще не все доделано, но уже лучше! Подскажите, пожалуйста, как увеличить время статичности картинки. Сейчас они очень быстро меняют друг друга, а мне надо, чтобы задержка была 4-5 секунд.
Ответить

Administrator
0
# 3030
(17:18:05  07.02.2016 г.)

Измените внутри всех встречающихся setInterval("chgImg(0)", 3000) значение 3000 на большее (например, 6000). Т.к. за время плавной смены изображений отвечает fadeToggle(2000), то при setInterval("chgImg(0)", 6000) "статичность" изображения будет равна 4 секундам.
Ответить

Парк-Отель
0
# 3031
(17:32:16  07.02.2016 г.)

Вроде бы разобрались сами с интервалом. Спасибо за помощь.
Ответить

Сергей
0
# 3085
(16:15:16  16.03.2016 г.)

Здравствуйте. Подскажите, пожалуйста, как можно расположить текст под картинкой с изменяющейся высотой картинки (в зависимости от разрешения экрана)?

<img alt="" id="slide_show" src="https://1.jpg" style="position: absolute; height: auto; margin: 0 10px; width: 100%;" />
<img alt="" id="slide_show2" src="https://1.jpg" style="display: none; position: absolute; height: auto; margin: 0 10px; width: 100%;" />

Или чтобы элементы сайта не накладывались на слайд-шоу.
Заранее спасибо.
Ответить

Administrator
0
# 3094
(23:01:34  17.03.2016 г.)

Как вариант, поместите картинки в блок DIV с id="show".
И добавьте jQuery код:
$(document).ready(function(){$('#show').height($('#slide_show').height());});
При желании можно еще добавить код отслеживающий изменения размера окна:
$(window).resize(function(){$('#show').height($('#slide_show').height());});
Ответить

Сергей
0
# 3097
(19:21:07  18.03.2016 г.)

Спасибо. Все работает. Только при полном обновлении страницы все слетает (Ctrl+F5).
Можно с этим что-то сделать?
Ответить

Administrator
0
# 3098
(20:44:56  18.03.2016 г.)

Проблема в Firefox - при Ctrl+F5 почему-то не вычисляет высоту изображения.
Ответить

Сергей
0
# 3102
(14:24:29  20.03.2016 г.)

Получилось!
Код из-за его большого объема был перенесен на форум.
Ответить

Борис
0
# 3466
(23:04:44  27.09.2016 г.)

А как реализовать такую же плавную смену таблиц в случайном порядке?
Ответить

alexandr
0
# 4135
(21:02:09  16.11.2017 г.)

Здравствуйте. У меня проблема, при прокрутке страницы изображения из слайд-шоу прокручиваются вместе со страницей!?
Ответить

Ольга
0
# 4343
(22:25:41  11.09.2018 г.)

Здравствуйте, помогите пожалуйста добавить ссылку "Предыдущая" для этого замечательного скрипта. Никак не получается самостоятельно реализовать.
Ответить

Закрыть
Ваше имя:
892 + 19 =
Добавить комментарий:
Ваше имя:
892 + 19 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 4

Как Вы узнали о нашем сайте?