Показать сообщение отдельно
  #2 (permalink)  
Старый 06.09.2011, 12:44
Новичок на форуме
Отправить личное сообщение для DrFreud Посмотреть профиль Найти все сообщения от DrFreud
 
Регистрация: 30.08.2011
Сообщений: 7

Проблема решилась следующим образом:

firstvis = $(".thumb_img img:eq(0)").offset(); //получаем смещение 1ой картинки
		firstvistop = firstvis.top;
		
		fourthvis = $(".thumb_img img:eq(3)").offset();//получаем смещение 4ой картинки
		fourthvistop = fourthvis.top;
		//в диапазоне между 1ой и 4ой картинкой превью умещаются в блок-родитель, это будет границей видимости

	$("p.thumbs_list a").click(function(){//по клику на ссылку
		var largePathL = $(this).attr("href");//получаем путь к картинке (href ссылки и src соответствующей картинки одинаковы)
		var thumb_imgposoff = $(".thumb_img img[src="+largePathL+"]").offset();//получаем ее смещение
		var thumb_imgofftop = thumb_imgposoff.top;
		var divimgheight = $(".thumb_img:eq(1)").height();//получаем высоту картинки (все превью одинаковы) поэтому берем любую
		if (thumb_imgofftop>fourthvistop){//проверяем находится ли картинка ниже границы видимости и если да, то двигаем div - родитель картинок, до тех пор пока картинка не войдет в диапазон
		do {
			thumb_imgofftop = thumb_imgofftop - divimgheight
			$(".thumbs").animate({top:"-="+divimgheight+""}, 75);
			} while (thumb_imgofftop > fourthvistop)
			} else
			if (thumb_imgofftop < firstvistop){//проверяем находится ли картинка выше границы видимости и т.д.
				do {
					thumb_imgofftop = thumb_imgofftop + divimgheight
					$(".thumbs").animate({top:"+="+divimgheight+""}, 75);
					} while (thumb_imgofftop < firstvistop)
				}

		});


Трабл был в том, что вместо offset использовалось position, который считает координаты от родителя, а не от окна))
Может кому пригодится)))
Единственная проблема с которой я пока не разобрался это как правильно использовать setTimeout или что-то другое для того, чтобы при клике по ссылке в момент исполнения анимации клик не срабатывал, иначе можно сдвинуть блок с превью за пределы видимости...

Последний раз редактировалось DrFreud, 06.09.2011 в 15:29.
Ответить с цитированием