Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2015, 12:40
Интересующийся
Отправить личное сообщение для blackcky Посмотреть профиль Найти все сообщения от blackcky
 
Регистрация: 24.10.2014
Сообщений: 25

как добавить в js слайдер авто прокрутку
Здравствуйте, у меня все никак не получается внедрить в свой слайдер авто прокрутку, пролопатив n-ое количество материала с готовыми авто слайдерами и проанализировав код я так и не пришел к выводу, прошу вашей помощи
<img src="images/strela1.png" id="strela1">
	<img src="images/strela2.png" id="strela2">
	<a href="#">
		<div id="big-strela1"></div>
	</a>
	<a href="#">
		<div id="big-strela2"></div>
	</a>	
<div id="slider">
			<div id="slider-uvel">
				<div class="show-slaider">
					<a href="#"><img src="images/slider-1.jpg"></a>
				</div>
				<div class="show-slaider">
					<a href="#"><img src="images/slider-2.jpg"></a>
				</div>
				<div class="show-slaider">
					<a href="#"><img src="images/slider-3.jpg"></a>
				</div>
			</div>
		</div>


#slider {
	width: 973px;
	height: 383px;
	float: left;
	overflow: hidden;
	position: relative;
}
#slider-uvel {
	width: 2919px;
	position: relative;
	z-index: 54;
}
#big-strela1 {
	height: 143px;
	width: 96px;
	z-index: 80;
	position: absolute;
	margin-top: 223px;
	margin-left: 188px;
}
a:hover #big-strela1 {
	background: url("images/big-strela1.png");
	z-index: 80;
}
#big-strela2 {
	height: 143px;
	width: 96px;
	z-index: 80;
	position: absolute;
	margin-top: 223px;
	margin-left: 1066px;
}
a:hover #big-strela2 {
	background: url("images/big-strela2.png");
	z-index: 80;
}
#strela1 {
	position: absolute;
	margin-left: 206px;
	margin-top: 270px;
	z-index: 70;
}	
#strela2 {
	position: absolute;
	margin-top: 270px;
	margin-left: 1120px;
	z-index: 70;
}


$(document).ready(function(){

	$("#big-strela2").click(function(){
		$("#slider-uvel").animate({right: "-973px"}, 200);
		setTimeout(function () {
			$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
			$("#slider-uvel .show-slaider").eq(0).remove();
			$("#slider-uvel").css({"left":"0px"});
		}, 10);
	});
	
	$("#big-strela1").click(function(){ 
		$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
		$("#slider-uvel").css({"right":"-973px"});
		$("#slider-uvel").animate({left: "0px"}, 200);
		$("#slider-uvel .show-slaider").eq(-1).remove();
	});
	
});
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2015, 12:48
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

сам слайдер работает? по setInterval жми на свою кнопку листания $("#big-strela2").click();
а вообще выдели листание в функцию и вызывай когда нужно.
лучше пример сделай на jsfiddle.net иди песочнице на этом сайте
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2015, 13:15
Интересующийся
Отправить личное сообщение для blackcky Посмотреть профиль Найти все сообщения от blackcky
 
Регистрация: 24.10.2014
Сообщений: 25

да, слайдер работает. при нажатие на кнопки, он производит операции листания в стороны( зависит от кнопки). я не могу понять куда, как и какой код вставить, чтобы по мимо ручной прокрутки, происходила операция авто листания с временным периодом
Ответить с цитированием
  #4 (permalink)  
Старый 16.01.2015, 13:46
Интересующийся
Отправить личное сообщение для Noobloid Посмотреть профиль Найти все сообщения от Noobloid
 
Регистрация: 16.01.2015
Сообщений: 23

попробуй вынуть содержимое финкции oncklick в отдельную функцию и запускать её с setInterval
$("#big-strela2").click(myFunct());
$(document).ready(setInterval(myFunct(), 5000));

function myFunct(){
   $("#slider-uvel").animate({right: "-973px"}, 200);
   setTimeout(function () {
      $("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
      $("#slider-uvel .show-slaider").eq(0).remove();
      $("#slider-uvel").css({"left":"0px"});
   }, 10);
}

сори setInterval а не setTimeout

Последний раз редактировалось Noobloid, 16.01.2015 в 14:32.
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2015, 19:23
Интересующийся
Отправить личное сообщение для blackcky Посмотреть профиль Найти все сообщения от blackcky
 
Регистрация: 24.10.2014
Сообщений: 25

Сообщение от Noobloid
попробуй вынуть содержимое финкции oncklick в отдельную функцию и запускать её с setInterval
01
$("#big-strela2").click(myFunct());
02
$(document).ready(setInterval(myFunct(), 5000));
03
 
04
function myFunct(){
05
   $("#slider-uvel").animate({right: "-973px"}, 200);
06
   setTimeout(function () {
07
      $("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
08
      $("#slider-uvel .show-slaider").eq(0).remove();
09
      $("#slider-uvel").css({"left":"0px"});
10
   }, 10);
11
}
я очень плохо разбираюсь в js, из вашего сообщения я сделал вывод что нужно прикрепить отдельно еще и этот код, если вас не затруднит, расскажите по подробней, что и как сделать. подключив ваш код, слайдер только пролистывает первую картинку( почти моментально) и больше действий нет
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2015, 09:04
Новичок на форуме
Отправить личное сообщение для krisdh Посмотреть профиль Найти все сообщения от krisdh
 
Регистрация: 14.01.2015
Сообщений: 4

Всё просто.

Вот твой код:
$(document).ready(function(){

	$("#big-strela2").click(function(){
		$("#slider-uvel").animate({right: "-973px"}, 200);
		setTimeout(function () {
			$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
			$("#slider-uvel .show-slaider").eq(0).remove();
			$("#slider-uvel").css({"left":"0px"});
		}, 10);
	});
	
	$("#big-strela1").click(function(){ 
		$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
		$("#slider-uvel").css({"right":"-973px"});
		$("#slider-uvel").animate({left: "0px"}, 200);
		$("#slider-uvel .show-slaider").eq(-1).remove();
	});
	
});


Замени его на:
$(document).ready(function(){	
	$("#big-strela1").click(function(){ 
		$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
		$("#slider-uvel").css({"right":"-973px"});
		$("#slider-uvel").animate({left: "0px"}, 200);
		$("#slider-uvel .show-slaider").eq(-1).remove();
	});

	$("#big-strela2").click(myFunct());
	setInterval(myFunct(), 5000);

	function myFunct(){
	   $("#slider-uvel").animate({right: "-973px"}, 200);
	   setTimeout(function () {
	      $("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
	      $("#slider-uvel .show-slaider").eq(0).remove();
	      $("#slider-uvel").css({"left":"0px"});
	 }, 10);
    }
});

У тебя слайдер запускался только после нажатия на #big-strela2, а в коде приведенном Noobloid`ом нажатие на #big-strela2 запускает функцию, которая параллельно запускается и через setInterval с тайм-аутом 5 секунд.

Так же я обычно вставляю в слайдеры такую функцию, что бы при наведении останавливалась прокрутка, но это уже баловства. Попробуй, для начала, разобраться с этим кодом.

Последний раз редактировалось krisdh, 20.01.2015 в 09:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
как переделать слайдер? Estrie (X)HTML/CSS 0 06.03.2012 18:57
Как это реализовать на JS Bezlyj Общие вопросы Javascript 6 06.03.2012 09:20
Как реализовать отключения JS кода через админку ? lamer Серверные языки и технологии 4 08.02.2012 17:23
С помощью JS добавить к ссылкам картинку в CSS wlad2 Элементы интерфейса 7 16.10.2010 23:44