Показать сообщение отдельно
  #4 (permalink)  
Старый 07.08.2012, 14:06
Интересующийся
Отправить личное сообщение для OlegDegtev Посмотреть профиль Найти все сообщения от OlegDegtev
 
Регистрация: 07.08.2012
Сообщений: 13

Вобщем если кому интересно, выкладываю финальную версию скрипта. 2 дня с ним мучался. Он не претендует на отсутствие ошибок,так как я начинающий в jquery, но в интернете ничего другого все равно нету. Окошко ленты шириной 900px позишн релатив оверфлоу хидден. Внутри окошка - сама лента произвольной длины, позишн абсолют, фотки шириной 174, расстояние между фотками 5. ПОдкладка под слайдер(область где он может ездить) 850px. У нее тоже позишн релатив, у слайдера абсолют. Есть подкладка("#cover"), закрывающая собой весь документ, чтоб вы таская нажатой кнопкой мыши слайдер не выделяли текст и всякие элементы рядом со слайдером.
$(document).ready(function(){
	var lenta_width = $("#lenta").width();
	var slider_width = parseInt(850 * 900 / lenta_width);
	var max_left = 850 - slider_width;
	var max_lenta_left = lenta_width - 900;
	var k = lenta_width / 850;
	var pr = 0;
	$("#slider").css({"width":slider_width + "px"}).mousedown(function(position){		
		pr = 1;
		var height = $(document).height();
		$("#cover").css({"height":height+"px", "display":"block"});
		var start = position.pageX; 
		var slider_start = $(this).css("left");
		var lenta_start = $("#lenta").css("left");
		slider_start = parseInt(slider_start);
		lenta_start = parseInt(lenta_start);		
		$("body").mousemove(function(event){
			if (pr != 1)
				{return;}
			var move = event.pageX - start;
			var left = slider_start + move;
			var lenta_left = lenta_start - move * k;
			if (left < 0)
			{
				left = 0;
				lenta_left = 0;
			}
			if (left > max_left)
			{
				left = max_left;
				lenta_left = 0 - max_lenta_left;
			}
				$("#slider").css({"left":left + "px"});
				$("#lenta").css({"left":lenta_left +"px"});					
		});			
	});
	$("body").mouseup(function(){
		pr = 0;
		$("#cover").css({"display":"none"});								
	});
	
});

Надеюсь кому-нибудь мой метод поможет)
Ответить с цитированием