Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Трудности с setInterval, setTimeout (https://javascript.ru/forum/jquery/48291-trudnosti-s-setinterval-settimeout.html)

tanto39 28.06.2014 02:45

Трудности с setInterval, setTimeout
 
Вложений: 1
Я в ообщем только яваскрипт и jquery недавно изучать стал, так что не судите строго.
Короче проблема - пытаюсь сделать чтобы картинки в слайдере сами по себе переключались, ничего не получается. Может, знает кто как исправить? Так же прикрепил к теме архив со скриптом, версткой, css и картинками.

$(document).ready(function() {
	function slider() {$('.mini-images a').each(function() {
			/*меняем атрибут src большой картинки на значение атрибута href текущей ссылки с миникартинкой 
			и даем задержку 3 сек (таймаут не работает):*/
			setTimeout($('.big-img img').attr('src',$(this).attr('href')), 3000);
	});
	}
	//повторяем функцию slaider каждую секунду - тоже не работает, вместо этого за секунду первая картинка меняется на вторую, сука
	setInterval(slider, 1000);
});
//это просто чтобы картинки при клике по превьюшке переключались тут все нормально:
$(document).ready(function() {
	$('.mini-images a').click(function(eventObgect) {
		$('.big-img img').hide().attr('src',$(this).attr('href'));
		$('.big-img img').load(function() {
		$(this).fadeIn(500);	
		});
		eventObgect.preventDefault();
	});	
});


HTML верстка:
<div class="slaider">
<div class="big-img">
<img src="images/tachka1.jpg" alt="tachka1" title="tachka"/>
</div>
<div class="mini-images">
<div class="prev-img"><a href="images/tachka1.jpg"><img src="images/tachka1mini.jpg" alt="tachka1" title="tachka"/></a></div>
<div class="prev-img"><a href="images/tachka2.jpg"><img src="images/tachka2mini.jpg" alt="tachka2" title="tachka2"/></a></div>
<div class="prev-img"><a href="images/tachka3.jpg"><img src="images/tachka3mini.jpg" alt="tachka3" title="tachka3"/></a></div>
</div>
</div>

:help:

dwarf 28.06.2014 15:26

У вас
setInterval(slider, 1000);
выполняется за меньшее время чем
setTimeout($('.big-img img').attr('src',$(this).attr('href')), 3000);

Может в этом причина ?

рони 28.06.2014 15:40

tanto39,
в функции slider недолжно быть перебора а нужен выбор следующей картинки

рони 28.06.2014 16:00

tanto39,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .prev-img{
    display: inline-block;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{
   var a = $('.mini-images a'), len = a.length, indx = 0;
   (function slider()
   {
       $('.big-img img').attr('src',$(a[indx]).attr('href'));
       indx = ++indx % len;
       window.setTimeout(slider, 3000);
   }());
   $('.mini-images a').click(function(eventObgect) {
		$('.big-img img').hide().attr('src',$(this).attr('href'));
		$('.big-img img').load(function() {
		$(this).fadeIn(500);
		});
		eventObgect.preventDefault();
	});
})
  </script>
</head>

<body>
<div class="slaider">
 <div class="big-img">
 <img src="images/tachka1.jpg" alt="tachka1" title="tachka"/>
 </div>
 <div class="mini-images">
 <div class="prev-img"><a href="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-thumb.jpg" alt="tachka1" title="tachka1"/></a></div>
 <div class="prev-img"><a href="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg" alt="tachka2" title="tachka2"/></a></div>
 <div class="prev-img"><a href="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-lg.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-thumb.jpg" alt="tachka3" title="tachka3"/></a></div>
 </div>
 </div>
</body>
</html>

dwarf 28.06.2014 16:09

Класс....

tanto39 28.06.2014 19:03

Спасибо, посоны!


Часовой пояс GMT +3, время: 10:16.