Создать ответ 
Несколько слайд-шоу всех изображений из папки на одной странице
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Несколько слайд-шоу всех изображений из папки на одной странице
К теме Слайд-шоу всех изображений из папки поступил комментарий с вопросом о том, как запустить несколько скриптов слайд-шоу на одной страничке.

Как я уже писал в комментариях, все зависит от того, чем должны отличаться эти слайд-шоу (папки с файлами, интервалы смены и т.д.).

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

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

В том месте, где будет расположено наше первое слайд-шоу, добавляем код:
Код:
<img src="image/time/colon.gif" alt="" id="slide_show">

Для второго слайд-шоу, добавляем свой код:
Код:
<img src="image/time/colon.gif" alt="" id="slide_show_2">

А дальше идет JavaScript код, состоящий из двух, практически одинаковых частей. Отличия заключаются в именах переменных JavaScript кода, папках с картинками и интервалах смены картинок:
Код:
<script type="text/javascript">
<?php
$images = array();
$folder = 'image/river/';
$array_to_js='var imgs=[';
$all_files = scandir($folder);
for ($i=2; $i<=sizeof($all_files)-1; $i++) { $array_to_js.='"'.$folder.$all_files[$i].'",'; }
echo substr($array_to_js,0,-1).'];';
?>

var n = 0;
var time = 800;
play  =setInterval("chgImg()", 3000);

function chgImg() {
$('#slide_show').fadeOut(time, function() {
  $(this).attr('src', imgs[n]).fadeIn(time);
});

n++;
if (n>=imgs.length) n = 0;
}

<?php
$images = array();
$folder = 'image/mount/';
$array_to_js = 'var imgs_2=[';
$all_files = scandir($folder);
for ($i=2; $i<=sizeof($all_files)-1; $i++) { $array_to_js.='"'.$folder.$all_files[$i].'",'; }
echo substr($array_to_js,0,-1).'];';
?>

var n = 0;
var time = 900;
play = setInterval("chgImg_2()", 4000);

function chgImg_2() {
$('#slide_show_2').fadeOut(time, function() {
  $(this).attr('src', imgs_2[n]).fadeIn(time);
});

n++;
if (n>=imgs_2.length) n = 0;
}
</script>

Для трех и более слайд-шоу придется еще раз добавить JavaScript код, в котором также изменить имена переменных и т.д.
12.05.2013 12:10:53
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #2
RE: Несколько слайд-шоу всех изображений из папки на одной странице
Спасибо! Только вот у меня и одно запустить не получилось. Первую картинку показывает, а папку для сканирования не находит.
12.05.2013 12:26:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #3
RE: Несколько слайд-шоу всех изображений из папки на одной странице
В нашем скрипта подразумевается, что файл со скриптом и папка с картинками лежат в одной папке.

Попробуйте указать $folder = './image/'; это будет означать, что независимо от того, где запущен скрипт, он будет сканировать папку image в корне сайта.

А еще гляньте исходный код странички и посмотрите что у Вас написано в строке, начинающейся с var imgs = [".
12.05.2013 12:42:37
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #4
RE: Несколько слайд-шоу всех изображений из папки на одной странице
...посмотрите что у Вас написано в строке, начинающейся с var imgs = [".

Вот так с точкой:
var imgs = ["./image/time/01.gif","./image/time/02.gif","./image/time/03.gif","./image/time/04.gif","./image/time/05.gif"];
А так, без точки:
var imgs = ];

В первом варианте просматривается какое-то движение - показывается и исчезает первая картинка и мелькает значение из атрибута "alt". Во втором - статичное изображение первой картинки. Менял картинки gif на jpg, все по-прежнему.
12.05.2013 19:50:02
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #5
RE: Несколько слайд-шоу всех изображений из папки на одной странице
Ну, с папки имена файлов скрипт берет правильно...

Похоже опять проблемы у Вас в движке, т.к. в виде отдельной странички данный скрипт работает (специально прицепил файл - slideshow-from-folder.rar).
12.05.2013 21:08:02
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #6
RE: Несколько слайд-шоу всех изображений из папки на одной странице
У меня не хочет работать.
13.05.2013 01:42:49
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #7
RE: Несколько слайд-шоу всех изображений из папки на одной странице
(13.05.2013 01:42:49)Sergey1917 писал(а):  У меня не хочет работать.

Прикрепленный файл тоже? Scratch
Да не может такого быть. Проверял и в IE и в Опере, все норм. Там ломаться то нечему. Скопируйте мне исходный код Вашей страницы, и я попытаюсь найти ошибку.
13.05.2013 18:41:50
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #8
RE: Несколько слайд-шоу всех изображений из папки на одной странице
Я уже писал, что первая картинка показывается и исчезает. Потом начинает мелькать сообщение из тега "alt". Вроде как изображения меняются, но не показываются.
На странице: <img src="/image/time/01.gif" - без точки, если с точкой, то первое изображение не появляется.

В PHP файле: $folder = './image/time/'; - с точкой, а если ставлю без точки, то появляется сообщение об системной ошибке скрипта, связанное со сканированием директории.

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

Вставил в тестовую страницу - не работает. Анонс этой страницы выводится на главную и слайд-шоу как раз попадает в анонс. Так вот, в анонсе слайд-шоу показывается.


Прикрепления
.txt  Исходник в Опере.txt (Размер: 28.01 Кб / Загрузок: 5)
(Последний раз сообщение было отредактировано 14.05.2013 в 13:12:36, отредактировал пользователь Sergey1917.)
14.05.2013 12:46:35
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #9
RE: Несколько слайд-шоу всех изображений из папки на одной странице
В Вашем файле раскомментировал строчку:
Код:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

и у меня заработало.
14.05.2013 20:33:31
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #10
RE: Несколько слайд-шоу всех изображений из папки на одной странице
Работает, если в шаблоне главной стоит. Думаю в блоке на главной поставить и все будет нормально. Очень удобно тем, что легко добавлять новые картинки. Закинул в каталог и все, ничего править больше не надо. Очень удобно для частой смены. Спасибо!
15.05.2013 14:19:25
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru