Создать ответ 
Привязка картинок из слайд-шоу к лайтбоксу
Автор Сообщение
masaynay86 Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Apr 2015
Сообщение: #1
Привязка картинок из слайд-шоу к лайтбоксу
Добрый день!
Прошу помочь со скриптом Слайд-шоу всех изображений из папки
Имеется сайт на Wordpress, на главной странице есть 10 разных слайд-шоу, берущих картинки из 10 разных папок. Все работает с вашим скриптом, спасибо.
Как подправить скрипт так, чтобы при нажатии на картинку в слайд-шоу, картинка открывалась в отдельном окне лайтбокс, и чтобы листались картинки в лайтбоксе именно из этой папки (т.е. из этого слайд-шоу), а не из других девяти?
Спасибо!
21.04.2015 14:44:26
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

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

Думаю что сделать что-то похожее на то, что Вы предлагаете конечно можно, но не гарантирую.
21.04.2015 19:49:18
Найти все сообщения Цитировать это сообщение
masaynay86 Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Apr 2015
Сообщение: #3
RE: Привязка картинок из слайд-шоу к лайтбоксу
Добрый день!
С лайтбоксом вроде разобралась - у меня Wordpress, прицепила плагин Lightbox2 для WP, там нужно для картинок одной группа добавить rel=lightbox[имя_группы], и все картинки должны быть выведены на страничке, из папки нельзя взять.

Сделала следующее:
Вывела все картинки из папки на страницу с display:none, первую картинку показала, а следующие показываются в слайд-шоу и в лайтбоксе. Вернее должны показываться... с лайтбоксом все работает, а вот со слайд-шоу не очень... Показывается первая картинка, потом идет смена, но тоже не первую картинку и т.д., т.е. показывается только одна картинка, затем, через неопределенное время показывается следующая и опять меняется на нее же. Не пойму, где ошибка...
Все усложняется еще тем, что у меня 10 разных слайд-шоу из 10 разных папок, решила загнать все в цикл, вывести в таблице, в общем, сильно модифицировала код...

Пример здесь - xn--h1adclaew.photo

Не знаю, как добавить код во вложении, выведу здесь:
PHP код:
<?php
$dir 
= array ('Gallery/01-Potolki_v_gostinnuyu/''Gallery/02-Potolki_v_spalnu/''Gallery/03-Potolki_v_kuhnu/''Gallery/04-Potokki_v_detskuyu/''Gallery/05-Potolki_v_vannuyu/''Gallery/06-Mnogourovnevye_potolki/''Gallery/07-Potolki_fotopechat/''Gallery/08-Potolki_s_podsvetkoi/''Gallery/09-Mnogocvetnye_potolki/''Gallery/10-Ekskluzivnye_potolki/'); //список папок для слайд-шоу
  
$cols 5//колонки таблицы
  
$k 0;
  echo 
"<table border='5'>"//выводим таблицу
  
for ($f 0$f 10$f++)
  {
  if (
$k $cols == 0) echo "<tr>"// Добавляем новую строку
  
echo "<td>"// Начинаем столбец

  
$files scandir($dir[$f]); // Берём всё содержимое директории
  
echo "<script type='text/javascript'>"//скрипт слайд-шоу
  
$array_to_js='var imgs'.$f.' =['//так как слайд-шоу много, добавляем номер по порядку к переменной imgs
  
for ($o=2$o<=sizeof($files)-1$o++) {
    
$array_to_js.='"'.$dir[$f].$files[$o].'",';
}
  echo 
substr($array_to_js,0,-1).'];';

echo 
"var n=0;
var time=800;
play=setInterval('chgImg
$f()', 3000);
function chgImg
$f() {
$('#slide_show
$f').fadeOut(time, function() {
  $(this).parent('a').attr('href', imgs"
.$f."[n]);
  $(this).attr('src', imgs"
.$f."[n]).fadeIn(time);
});
n++;
if (n>=imgs
$f.length) n=0;
}
</script>"
;

        echo 
"<div align='center' style='height:110px; overflow:hidden;'>"//выводим div высотой меньше картинки для скрытия нижней надписи на картинке
      
echo "<a href='$dir[$f]$files[2]' rel='lightbox[$f]'>"//ссылка на картинку для открытия в лайтбокс с присваиванием группы
      
echo "<img src='$dir[$f]$files[2]' id='slide_show$f' width='150' height='120'>"//вывод первой картинки - в скобках цифра 2 т.к. 0 и 1 - это файлы родительской и текущей директорий, а не картинки
      
echo "</a>";
      echo 
"</div>";
 
  for (
$i 0$i count($files); $i++) { // Перебираем все файлы
    
if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
      
$path $dir[$f].$files[$i]; // Получаем путь к картинке
      
echo "<a href='$path' rel='lightbox[$f]'>"// Делаем ссылку на картинку
      
echo "<img src='$path' alt='' width='0' style='display:none;' />"// Выводим все картинки, но не отображаем их, это нужно для лайтбокса, все картинки должны быть выведены на страничке
      
echo "</a>"// Закрываем ссылку
      
}
      }
      echo 
"</td>"// Закрываем столбец
      /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя*/
      
if ((($k 1) % $cols == 0) || (($i 1) == count($files))) echo "</tr>";
      
$k++; // Увеличиваем вспомогательный счётчик
  
}
  echo 
"</table>"// Закрываем таблицу
?>
Если есть желание - гляньте кто-нибудь, плиз, что-то я намудрила...
23.04.2015 11:09:42
Найти все сообщения Цитировать это сообщение
masaynay86 Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Apr 2015
Сообщение: #4
RE: Привязка картинок из слайд-шоу к лайтбоксу
Ура! Я разобралась сама!
Нашла ошибку, так как количество картинок во всех папках разное, то и переменные n тоже должны быть разными, т.е. в коде добавляем к n число $f, и все получается:
PHP код:
echo "var n$f=0;
var time=800;
play=setInterval('chgImg
$f()', 3000);
function chgImg
$f() {
$('#slide_show
$f').fadeOut(time, function() {
  $(this).parent('a').attr('href', imgs"
.$f."[n".$f."]);
  $(this).attr('src', imgs"
.$f."[n".$f."]).fadeIn(time);
});
n
$f++;
if (n
$f>=imgs$f.length) n$f=0;
}
</script>"

Всем спасибо! Скрипт супер! Все работает!!!
23.04.2015 12:13:39
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru