Нужна помощь со скроллом изображений

(Ответов: 6, Просмотров: 683)
  1. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    Ребят, такая проблема!
    Установил скрипт скролла брендов моих, всё работает всё хорошо! - http://electromag.su
    Хочу доработать одну ерунду! Когда бренды заканчиваются, начинается пустое место, которое длиться достаточно долго и не совсем удобно оно! Хотел бы убрать! То есть чтобы после последнего бренда сразу шел первый! Не подскажите? Код прилагаю!

    Код:
    $(function() {
    			
    		  //Удаляем класс js-disabled. Если этот класс вы удалили из CSS, здесь эту строку также можно удалить.
    				$("#viewer").removeClass("js-disabled");
    			
    			 //создаем контейнер div id="container" для изображений
    				$("<div>").attr("id", "container").css({ position:"absolute"}).width($(".wrapper").length * 170).height(170).appendTo("div#viewer");
    			  	
    				//Добавляем в контейнер изображения
    				$(".wrapper").each(function() {
    					$(this).appendTo("div#container");
    				});
    				
    				  var duration = $(".wrapper").length * 3000;   // здесь меняем скорость прокуртки в милисекундах.
    				
    				var speed = (parseInt($("div#container").width()) + parseInt($("div#viewer").width())) / duration;
    								
    				var direction = "rtl";
    				
    			
    				(direction == "rtl") ? $("div#container").css("left", $("div#viewer").width()).addClass("rtl") : $("div#container").css("left", 0 - $("div#container").width()).addClass("ltr") ;
    				
    				//animator function
    				var animator = function(el, time, dir) {
    				 
    				//устанавливаем в какую сторону будут двигаться изображения при старте. Здесь - вправо
    					if(dir == "rtl") {
    					  
    					  //add direction class
    						el.removeClass("ltr").addClass("rtl");
    					 		
    						//animate the el
    						el.animate({ left:"-" + el.width() + "px" }, time, "linear", function() {
    												
    							//reset container position
    							$(this).css({ left:$("div#imageScroller").width(), right:"" });
    							
    							//restart animation
    							animator($(this), duration, "rtl");
    							
    							//hide controls if visible
    							($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;			
    											
    						});
    					} else {
    					
    					  //add direction class
    						el.removeClass("rtl").addClass("ltr");
    					
    						//animate the el
    						el.animate({ left:$("div#viewer").width() + "px" }, time, "linear", function() {
    												
    							//reset container position
    							$(this).css({ right:0 - $("div#container").width() });
    							
    							//restart animation
    							animator($(this), duration, "ltr");
    							
    							//hide controls if visible
    							($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;			
    						});
    					}
    				}
    				
    				//start anim
    				animator($("div#container"), duration, direction);
    				
    				//pause on mouseover
    				$("a.wrapper").live("mouseover", function() {
    				  
    					//stop anim
    					$("div#container").stop(true);
    					
    					//show controls
    					($("div#controls").length == 0) ? $("<div>").attr("id", "controls").appendTo("div#outerContainer").css({ opacity:0.7 }).slideDown("slow") : null ;
    					($("a#rtl").length == 0) ? $("<a>").attr({ id:"rtl", href:"#", title:"rtl" }).appendTo("#controls") : null ;
    					($("a#ltr").length == 0) ? $("<a>").attr({ id:"ltr", href:"#", title:"ltr" }).appendTo("#controls") : null ;
    					
    					//variable to hold trigger element
    					var title = $(this).attr("title");
    					
    					//add p if doesn't exist, update it if it does
    					($("p#title").length == 0) ? $("<p>").attr("id", "title").text(title).appendTo("div#controls") : $("p#title").text(title) ;
    				});
    				
    				//restart on mouseout
    				$("a.wrapper").live("mouseout", function(e) {
    				  
    					//hide controls if not hovering on them
    					(e.relatedTarget == null) ? null : (e.relatedTarget.id != "controls") ? $("div#controls").slideUp("slow").remove() : null ;
    					
    					//work out total travel distance
    					var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    														
    					//work out distance left to travel
    					var distanceLeft = ($("div#container").hasClass("ltr")) ? totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width())) : totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left")))) ;
    					
    					//new duration is distance left / speed)
    					var newDuration = distanceLeft / speed;
    				
    					//restart anim
    					animator($("div#container"), newDuration, $("div#container").attr("class"));
    
    				});
    												
    				//handler for ltr button
    				$("#ltr").live("click", function() {
    				 					
    					//stop anim
    					$("div#container").stop(true);
    				
    					//swap class names
    					$("div#container").removeClass("rtl").addClass("ltr");
    										
    					//work out total travel distance
    					var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    					
    					//work out remaining distance
    					var distanceLeft = totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width()));
    					
    					//new duration is distance left / speed)
    					var newDuration = distanceLeft / speed;
    					
    					//restart anim
    					animator($("div#container"), newDuration, "ltr");
    				});
    				
    				//handler for rtl button
    				$("#rtl").live("click", function() {
    										
    					//stop anim
    					$("div#container").stop(true);
    					
    					//swap class names
    					$("div#container").removeClass("ltr").addClass("rtl");
    					
    					//work out total travel distance
    					var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    
    					//work out remaining distance
    					var distanceLeft = totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left"))));
    					
    					//new duration is distance left / speed)
    					var newDuration = distanceLeft / speed;
    				
    					//restart anim
    					animator($("div#container"), newDuration, "rtl");
    				});
    			});
    • 0
  2. Banned
    • Регистрация: 09.10.2012
    • Сообщений: 935
    • Репутация: 530
    Цикл поставь. И зачем делать на 1,5 джумле?
    • 0
  3. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    развёрнутей можно?
    • 0
  4. Banned
    • Регистрация: 09.10.2012
    • Сообщений: 935
    • Репутация: 530
    hotsman, Почитай про (while) в php. Та 10 минут надо что бы разобраться, зато потом очень пригодиться. Лучше разберись сам, чем тебе кто-то уже готовое напишет.
    • 0
  5. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    zelez, спасибо за совет! сам цикл этот я знаю, знаю как он работает! но я не пойму как он тут поможет, либо куда именно этот цикл вставить в код?
    • 0
  6. Дипломник Аватар для Tiefe
    • Регистрация: 17.12.2012
    • Сообщений: 120
    • Репутация: 18
    посмотрите на эту строчку - width($(".wrapper").length * 170), число 170 означает предполагаемую ширину одного блока с брендом, она у вас указана как 170, на самом деле -135.
    То есть попробуйте поменять 170 на 135
    • 0
  7. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    Tiefe, спасибо, но не сработало! скорость только чуть снизилась прокрутки и всё!
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Нужна помощь по Umi CMS, просмотр изображений
CMS 1 12.12.2012 19:23
Нужна помощь с JS
Web программирование 3 22.07.2012 17:53
Нужна помощь по Umi CMS, просмотр изображений
Web дизайн 0 06.04.2012 19:24
Нужна помощь.
Общие вопросы поисковой оптимизации 6 16.02.2012 02:23
Нужна помощь
Web программирование 5 30.12.2010 05:45

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры