Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2011, 11:42
Новичок на форуме
Отправить личное сообщение для kross Посмотреть профиль Найти все сообщения от kross
 
Регистрация: 30.09.2011
Сообщений: 2

Комментарии под фотографиями
Добрый день.
Задался целью добавить комментария Facebook API под фото-галлерею на FancyBox или LightBox, идея приходит только одна - генерировать на php отдельные iFrame страницы, но php для меня как луна. Возможно кто-то уже делал подобное или подскажет что-то.
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2011, 13:54
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

Для меня наоборот php - земля.
Не пойму как сделать.
Скачал примеры по fancybox, сделал как с картинками, но вместо картинки вставляю в ссылку путь к php файлу и передаю параметр
image.php?id_image=10
В файле image.php забираю параметр, и вывожу на экран картинку <img src="'.$_GET['id_image'].'.jpg">

Вот в самом простом варианте так.
Все выводит, все хорошо, Но проблема в размере окна fancybox.
слишком высокие картинки не умещаются в область отведенную для fancybox и появляется полоса прокрутки в окне fancybox.
Мне нужно, чтобы высота fancybox была равна высоте картинки + 100 px, для вывода комментариев под картинкой. Как это сделать, ума не приложу.
Я думаю понятно объяснил.
Вот настройки fancybox:
<script type="text/javascript">

		$(document).ready(function(e) {

			$("a.gallery2").fancybox(
			{
			"padding" : 20, // отступ контента от краев окна
			"zoomOpacity" : true,	// изменение прозрачности контента во время анимации (по умолчанию false)
			"zoomSpeedIn" : 500,	// скорость анимации в мс при увеличении фото (по умолчанию 0)
			"zoomSpeedOut" :800,	// скорость анимации в мс при уменьшении фото (по умолчанию 0)
			"zoomSpeedChange" : 1000, // скорость анимации в мс при смене фото (по умолчанию 0)
			"frameWidth" : screen.width-350,	 // ширина окна, px (425px - по умолчанию)
			"overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay
			"overlayOpacity" : 0.8,	 // Прозрачность затенения 	(0.3 по умолчанию)
			"hideOnContentClick" :false, // Если TRUE  закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE
			"centerOnScroll" : false // Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу
			});
		});
	</script>


вот так вывожу картинки:
<a class="gallery2"  href="image.php?id=900"><img src="путь до привьюшки"></a>


Помогите плиз, бъюсь второй день ((

Последний раз редактировалось neon_tmn, 12.10.2011 в 13:57.
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2011, 14:21
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

В общем мне нужно заставить fancybox растягиваться по высоте в зависимости от того, что у менаходится в php файле. Либо, каким-то, не знаю каким способов передавать в свойство frameHeight значение высоты картинки+100. Высоту кратинки я могу получить в php, либо с помощью javascript (но только после полной загруки картинки). или в ссылке для каждого изображения передавать высоту и получать ее в этом же скрипте, например так:
<a class="gallery2"  href="image.php?id=900&height=500"><img src="путь до привьюшки"></a> 
<a class="gallery2"  href="image.php?id=905&height=820"><img src="путь до привьюшки"></a> 
<a class="gallery2"  href="image.php?id=804&height=1250"><img src="путь до привьюшки"></a>

Вот как то так. В принципе последний вариант с размером в ссылке я думаю простой и легко реализуемый, но опять же у меня не получается.
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2011, 06:53
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

Если делаю только так
$('a.gallery2').click(function () {alert('fff');})

Тогда при нажатии на картинку у меня появляется алерт fff, но не появляется картинка, вообще больше ничего не происходит.
Если делаю только так:
$("a.gallery2").fancybox(
				{
					"padding" : 20, // отступ контента от краев окна
					"zoomOpacity" : true,	// изменение прозрачности контента во время анимации (по умолчанию false)
					"zoomSpeedIn" : 500,	// скорость анимации в мс при увеличении фото (по умолчанию 0)
					"zoomSpeedOut" :800,	// скорость анимации в мс при уменьшении фото (по умолчанию 0)
					"zoomSpeedChange" : 1000, // скорость анимации в мс при смене фото (по умолчанию 0)
					"frameWidth" : screen.width-350,	 // ширина окна, px (425px - по умолчанию)
					"frameHeight" : 333,
					"overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay
					"overlayOpacity" : 0.8,	 // Прозрачность затенения 	(0.3 по умолчанию)
					"hideOnContentClick" :false, // Если TRUE  закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE
					"centerOnScroll" : false // Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу
				});


Тогда само собой загружается fancybox и картинка появляется в новом окне.
Если делаю все вместе:
$('a.gallery2').click(function () {alert('fff');})




		$("a.gallery2").fancybox(
				{
					"padding" : 20, // отступ контента от краев окна
					"zoomOpacity" : true,	// изменение прозрачности контента во время анимации (по умолчанию false)
					"zoomSpeedIn" : 500,	// скорость анимации в мс при увеличении фото (по умолчанию 0)
					"zoomSpeedOut" :800,	// скорость анимации в мс при уменьшении фото (по умолчанию 0)
					"zoomSpeedChange" : 1000, // скорость анимации в мс при смене фото (по умолчанию 0)
					"frameWidth" : screen.width-350,	 // ширина окна, px (425px - по умолчанию)
					"frameHeight" : 333,
					"overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay
					"overlayOpacity" : 0.8,	 // Прозрачность затенения 	(0.3 по умолчанию)
					"hideOnContentClick" :false, // Если TRUE  закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE
					"centerOnScroll" : false // Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу
				});


Тогда алерт не появляется, загружается только картинка в новом окне fancybox.
Так как мне из click передать в значение высоты:
$("a.gallery2").fancybox(
				{
			        ......
					"frameHeight" : значение полученное из click-a,
			        ......
				});


Сделать бы как то так например:
$('a.gallery2').click(function () {
var height;
height = 500;
return height;
})

но как мне получить эту функцию без click потом ума не приложу.

Последний раз редактировалось neon_tmn, 13.10.2011 в 06:57.
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2011, 07:38
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

Или может если кто знаком с плагином этим, подскажите как сделать высоту резиновую?
Ответить с цитированием
  #6 (permalink)  
Старый 16.10.2011, 11:09
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

И так, пришел к следующему:
function parseGetParams() {var $_GET = {};var link; link= $('a.gallery2').attr("href");  var __GET = link.split("&"); for(var i=0; i<__GET.length; i++) {var getVar = __GET[i].split("=");$_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1];}return $_GET;}

function ht()
	{
		var GETArr = parseGetParams();
		s=GETArr['height']*1+350;
		return s;
	}

$("a.gallery2").fancybox(
		{
			"padding" : 20, // отступ контента от краев окна
			"zoomOpacity" : true,	// изменение прозрачности контента во время анимации (по умолчанию false)
			"zoomSpeedIn" : 500,	// скорость анимации в мс при увеличении фото (по умолчанию 0)
			"zoomSpeedOut" :800,	// скорость анимации в мс при уменьшении фото (по умолчанию 0)
			"zoomSpeedChange" : 1000, // скорость анимации в мс при смене фото (по умолчанию 0)
			"frameWidth" : screen.width-350,	 // ширина окна, px (425px - по умолчанию)
			"overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay
			"overlayOpacity" : 0.8,	 // Прозрачность затенения 	(0.3 по умолчанию)
			"hideOnContentClick" :false, // Если TRUE  закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE
			"centerOnScroll" : false, // Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу
			"frameHeight" : ht()
		});


Теперь осталось две проблемы.
1. в самую первую функцию в link= $('a.gallery2').attr("href"); у меня всегда попадает только адрес первой ссылки. То есть на какую ссылку бы я ни нажал, всегда будет адрес первой ссылки. А мне нужно получить адрес нажатой ссылкит.
2. Ссылки вида:
<a class="gallery2" href="/script/jqp.php?id=1&height=550">1</a>
Выдают адрес, хоть и самой первой ссылки но все же выдают.
А ссылки вида:
<a class="gallery2" href="/script/jqp.php?id=1&height=550"><img src="/image.jpg"></a>
Выдают ошибку, типа нету адреса. что-то вроде undefinded.

Осталось совсем чуть чуть до решения вопроса, помогите пожалуйста. Тут даже вопрос уже не по fancybox, а чистый javascript.

Последний раз редактировалось neon_tmn, 16.10.2011 в 14:56.
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2011, 15:16
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

1. Это потому что скрипт отрабатывает один раз, при загрузке страницы, а не каждый раз при клике на фотке.

Слайдерописатели в основном пишут код для себя и поддерживать или расширять его тяжело, в виду его малой вменяемости.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Под IE8 задизейблена кнопка, а под Mozilla нет Svetich Internet Explorer 2 05.07.2011 10:03
Подстроить высоту страницы под юзера, прошу совета у гуру batonsu Events/DOM/Window 11 10.11.2010 19:39
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
Как писать скрипты под Opera? ucsus (X)HTML/CSS 2 15.04.2009 13:07
Выезжание таблицы из под ниоткуда. lancer Элементы интерфейса 3 29.06.2008 15:03