Проблема решилась следующим образом:
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 или что-то другое для того, чтобы при клике по ссылке в момент исполнения анимации клик не срабатывал, иначе можно сдвинуть блок с превью за пределы видимости...