В итоге написал свое решение, задача немного конкретизировалась и это по большей части для фотогалереи. Все блоки элементов(фотографий например) имеют фиксированную величину, которая указывается в скрипте. Это необходимо знать, чтобы вовремя убирать кнопки прокрутки. Дольше всего пришлось помучиться с кроссбраузерностью, но терь все работает. Вот, может кому пригодится..  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script> <style type="text/css"> .up-but { cursor: pointer; height: 20px; width: 47px; visibility: hidden; background: url('up-but.gif') no-repeat; margin-left: 67px; }  .down-but { cursor: pointer; height: 20px; visibility: hidden; width: 47px; background: url('down-but.gif') no-repeat; margin-left: 67px; }  .gallery { width: 185px; height: 320px; border: 2px solid black; overflow: hidden; position: relative; }  .scroll { position: relative; top: 0; }  </style> <script type="text/javascript">  $(document).ready(function(){		   	 var item_height=105; 	 var scroll_speed=600; 		 var item_num=0;	  	 var cont_height=parseFloat($(".gallery").css("height"));	 	  	 $(".gallery .scroll div").each(function() {item_num++;}); 	  	 all_item_height=item_height*item_num; 	 	 var dif=all_item_height-cont_height;	  	 if (dif > 0) $(".down-but").css("visibility", "visible");  	$(".down-but").click(function(){		 		$(".scroll").animate({top: "-="+item_height}, scroll_speed);		 		$(".up-but").css("visibility", "visible");	 	 		dif=dif-item_height;			   		if (dif<0) $(".down-but").css("visibility", "hidden");		 		return false; 	});  	$(".up-but").click(function(){	 		$(".down-but").css("visibility", "visible");  		$(".scroll").animate({top: "+="+item_height}, scroll_speed);	 		dif=dif+item_height;	 		if (dif+1 > all_item_height-cont_height) $(".up-but").css("visibility", "hidden");									   		return false; 	});   }); </script> </head> <body> <div class="up-but">Вверх</div> <div class="gallery"> <div class="scroll"> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок1</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок2</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок3</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок4</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок5</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок6</div> <div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок7</div> </div> </div> <div class="down-but">Вниз</div> </body> </html>