Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2014, 02:45
Новичок на форуме
Отправить личное сообщение для tanto39 Посмотреть профиль Найти все сообщения от tanto39
 
Регистрация: 28.06.2014
Сообщений: 9

Трудности с setInterval, setTimeout
Я в ообщем только яваскрипт и 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>

Вложения:
Тип файла: zip Слайдер автомат jq.zip (267.8 Кб, 0 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2014, 15:26
Интересующийся
Отправить личное сообщение для dwarf Посмотреть профиль Найти все сообщения от dwarf
 
Регистрация: 22.05.2014
Сообщений: 16

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

Может в этом причина ?
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2014, 15:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

tanto39,
в функции slider недолжно быть перебора а нужен выбор следующей картинки
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2014, 16:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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>
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2014, 16:09
Интересующийся
Отправить личное сообщение для dwarf Посмотреть профиль Найти все сообщения от dwarf
 
Регистрация: 22.05.2014
Сообщений: 16

Класс....
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2014, 19:03
Новичок на форуме
Отправить личное сообщение для tanto39 Посмотреть профиль Найти все сообщения от tanto39
 
Регистрация: 28.06.2014
Сообщений: 9

Спасибо, посоны!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация JS WeMeSder Общие вопросы Javascript 0 13.06.2014 23:51
setTimeout и setInterval срабатывают без задержки! ПОЧЕМУ? shureg Общие вопросы Javascript 1 12.05.2011 09:06
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Еще один вопрос по setTimeout setInterval Хранитель Света Общие вопросы Javascript 5 12.03.2009 22:37
Очень простой как даже по мне вопрос по поводу setTimeout & setInterval Хранитель Света Общие вопросы Javascript 5 12.07.2008 20:34