Показать сообщение отдельно
  #1 (permalink)  
Старый 04.03.2018, 00:27
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 38

Хочу усовершенствовать слайдер
Здравствуйте уважаемые, в javascript не силен, поэтому обращаюсь к Вам за помощью. Суть задачи – есть простенький слайдер на javascript (код ниже), работает идеально, все хорошо, но есть одно но, а именно – мне нужно разместить на одной странице шесть таких слайдеров. Проблема в том, что когда я копирую блоки слайдера еще раз (код ниже), то при нажатии на одну из кнопок «вперед» или «назад» на одном из слайдеров, элементы перемещаются на всех слайдерах одновременно. Прошу помочь мне допилить код скрипта. Спасибо
<div class="slider">
	<div class="slide-list">
		<div class="slide-wrap">
			<div class="slide-item">
				Элемент слайдера
			</div>
			<div class="slide-item">
				Элемент слайдера
			</div>
			<div class="slide-item">
				Элемент слайдера
			</div>
			<div class="slide-item">
				Элемент слайдера
			</div>
		</div>
		<div class="clear"></div>
	</div>
	<div class="namecat">ИМЯ КАТЕГОРИИ</div>
	<div class="prjamu"></div>
	<div class="navyp prev-slide"></div>
	<div class="navy next-slide"></div>
	<!--<div class="auto play"></div>-->
</div>

Сам код скрипта:
jQuery(document).ready(function(){
	function htmSlider(){
		/* Зададим следующие переменные */

		/* обертка слайдера */
		var slideWrap = jQuery('.slide-wrap');
		/* ссылки на предудыщий иследующий слайд */
		var nextLink = jQuery('.next-slide');
		var prevLink = jQuery('.prev-slide');

		var playLink = jQuery('.auto');
		
		var is_animate = false;
		
		/* ширина слайда с отступами */
		var slideWidth = jQuery('.slide-item').outerWidth();
		
		/* смещение слайдера */
		var newLeftPos = slideWrap.position().left - slideWidth;
		
		/* Клик по ссылке на следующий слайд */
		nextLink.click(function(){
			if(!slideWrap.is(':animated')) {
	
				slideWrap.animate({left: newLeftPos}, 500, function(){
					slideWrap
						.find('.slide-item:first')
						.appendTo(slideWrap)
						.parent()
						.css({'left': 0});
				});

			}
		});

		/* Клик по ссылке на предыдующий слайд */
		prevLink.click(function(){
			if(!slideWrap.is(':animated')) {
			
				slideWrap
					.css({'left': newLeftPos})
					.find('.slide-item:last')
					.prependTo(slideWrap)
					.parent()
					.animate({left: 0}, 500);

			}
		});
		
		
		/* Функция автоматической прокрутки слайдера */
		function autoplay(){
			if(!is_animate){
				is_animate = true;
				slideWrap.animate({left: newLeftPos}, 500, function(){
					slideWrap
						.find('.slide-item:first')
						.appendTo(slideWrap)
						.parent()
						.css({'left': 0});
					is_animate = false;
				});
			}
		}
		
		/* Клики по ссылкам старт/пауза */
		playLink.click(function(){
			if(playLink.hasClass('play')){
				playLink.removeClass('play').addClass('pause');
				jQuery('.navy').addClass('disable');
				timer = setInterval(autoplay, 1000);
			} else {
				playLink.removeClass('pause').addClass('play');
				jQuery('.navy').removeClass('disable');
				clearInterval(timer);
			}
		});

	}

	/* иницилизируем функцию слайдера */
	htmSlider();
});
Ответить с цитированием