На странице
 http://lafrombola.ru/?q=high-poly-mg есть две колонки, в одной из них перечислены названия объектов, на второй превью этих объектов. При клике на название (левая колонка) контейнер со списком превью смещается так, чтобы нужная картинка попадала в поле видимости (т.е. умещалась в блок - родитель). Логика смещения организована следующим 
жутким образом:
$("p.thumbs_list a").click(function(){
		var largePathL = $(this).attr("href");//сохраняем путь ссылки, он совпадает с атрибутом src соответствующей превью
		var thumbpos = $(".thumbs").position();//получаем координаты блока родителя превьюх
		var thumbpostop = thumbpos.top;
		var rightcolumnpos = $("#right-column-thumb").position();//получаем координаты блока родителя родителя превьюх
		var rightcolumnpostop = rightcolumnpos.top;
		var shiftpos = thumbpostop - rightcolumnpostop;//смещение
		var thumb_imgpos = $(".thumb_img img[src="+largePathL+"]").position();//получаем координаты самой превью
		var thumb_imgpostop = thumb_imgpos.top;
                //в зависимости от координаты превьюхи и положения блока - родителя превьюх смещаем этот блок так, чтобы превьюха стала видна 
		if ((thumb_imgpostop<=298) && (shiftpos<0) && (shiftpos>-406)){
			$(".thumbs").animate({top:"+=405px"}, 600);
			} else 
				if ((thumb_imgpostop<=298)&&(shiftpos<-406)){
				$(".thumbs").animate({top:"+=810px"}, 900);
				} else
				if ((thumb_imgpostop>299)&&(thumb_imgpostop<698)&&(shiftpos>=0)){
					$(".thumbs").animate({top:"-=405px"}, 600);
					} else
					if ((thumb_imgpostop>299)&&(thumb_imgpostop<698)&&(shiftpos<-406)){
						$(".thumbs").animate({top:"+=405px"}, 600);
						} else
						if ((thumb_imgpostop>782)&&(thumb_imgpostop<1095)&&(shiftpos<0)&&(shiftpos>-406)){
							$(".thumbs").animate({top:"-=405px"}, 600);
							} else
							if ((thumb_imgpostop>782)&&(thumb_imgpostop<1095)&&(shiftpos>=0)){
								$(".thumbs").animate({top:"-=810px"}, 900);
								}
		});
Как видно, код ужасен во всех отношениях, он зависит от количества картинок и громоздок, каждые следующие 4 картинки увеличат код в арифметической прогрессии...
Можно ли сделать код универсальным и масштабируемым? И какова будет логика... Я нуб в этом деле, но приходится заниматься, если кто заинтересуется - буду рад любой помощи)))