Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2013, 14:54
Новичок на форуме
Отправить личное сообщение для hostglin Посмотреть профиль Найти все сообщения от hostglin
 
Регистрация: 26.06.2013
Сообщений: 3

Как регулировать скорость смены слайдов?
Здравствуйте! Я пока новичок в JS.
Вот к примеру у меня есть простенький скрипт, который меняет картинки через заданный промежуток времени.
Как можно сделать так, чтобы через форму, с помощью кнопок "быстрее" и "медленнее" менялся этот промежуток времени, т.е какое-то значение(число) передавалось вместо "n" вот сюда setTimeout("demoslides()", n )
Уже полдня думаю, что-только не пробовал, ничего не выходит.

Скрипт:

<script type="text/javascript">
<!--
numimg=0
imgslide=new Array()
imgslide[0]=new Image()
imgslide[1]=new Image()
imgslide[2]=new Image()
imgslide[3]=new Image()
imgslide[4]=new Image()
imgslide[5]=new Image()
imgslide[6]=new Image()
imgslide[7]=new Image()
imgslide[8]=new Image()
imgslide[9]=new Image()
imgslide[10]=new Image()
imgslide[11]=new Image()
imgslide[12]=new Image()
imgslide[13]=new Image()

imgslide[0].src="1.jpg"
imgslide[1].src="2.jpg"
imgslide[2].src="3.jpg"
imgslide[3].src="4.jpg"
imgslide[4].src="5.jpg"
imgslide[5].src="6.jpg"
imgslide[6].src="7.jpg"
imgslide[7].src="8.jpg"
imgslide[8].src="9.jpg"
imgslide[9].src="10.jpg"
imgslide[10].src="11.jpg"
imgslide[11].src="12.jpg"
imgslide[12].src="13.jpg"
imgslide[13].src="14.jpg"

//чередование изображений
function demoslides()
{
if(document.images[0].src=imgslide[numimg].src){numimg++}
if(numimg==14) {numimg=0;}

setTimeout("demoslides()", n ) //если вместо k поставить число - "например 1000" то работает.
}

//-->
</script>

<body onLoad="demoslides()">

<img src="img3/15.jpg" width="700" height=500><br>
<form name=form1>
<input type=button value=медленнее onclick="k(1000)">
<input type=button value=быстрее onclick="k(2000)">
</form>


Для удобства прикрепил готовый архив с картинками и .html
Вложения:
Тип файла: zip 2.zip (2.89 Мб, 2 просмотров)

Последний раз редактировалось hostglin, 27.06.2013 в 15:12.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2013, 15:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ну к примеру:
<script type="text/javascript">
 <!--
 nTimeSet = 1000;
 numimg=0
 imgslide=new Array()
 imgslide[0]=new Image()
 imgslide[1]=new Image()
 imgslide[2]=new Image()
 imgslide[3]=new Image()
 imgslide[4]=new Image()
 imgslide[5]=new Image()
 imgslide[6]=new Image()
 imgslide[7]=new Image()
 imgslide[8]=new Image()
 imgslide[9]=new Image()
 imgslide[10]=new Image()
 imgslide[11]=new Image()
 imgslide[12]=new Image()
 imgslide[13]=new Image()
 imgslide[14]=new Image()

 imgslide[0].src="1.jpg"
 imgslide[1].src="2.jpg"
 imgslide[2].src="3.jpg"
 imgslide[3].src="4.jpg"
 imgslide[4].src="5.jpg"
 imgslide[5].src="6.jpg"
 imgslide[6].src="7.jpg"
 imgslide[7].src="8.jpg"
 imgslide[8].src="9.jpg"
 imgslide[9].src="10.jpg"
 imgslide[10].src="11.jpg"
 imgslide[11].src="12.jpg"
 imgslide[12].src="13.jpg"
 imgslide[13].src="14.jpg"
 imgslide[14].src="15.jpg"

 //чередование изображений
 function demoslides()
 {
 if(document.images[0].src=imgslide[numimg].src){numimg++}
 if(numimg==15) {numimg=0;}

 setTimeout("demoslides()", nTimeSet ) //если
 }
 function speedSet(k){
  if((nTimeSet+k)<1000) return;
  if((nTimeSet+k)>2000) return;
  nTimeSet = nTimeSet+k;
 }
 //-->
 </script>

 <body onLoad="demoslides()">

 <img src="img3/15.jpg" width="700" height=500><br>
 <input type=button value=медленнее onclick="speedSet(30)">
 <input type=button value=быстрее onclick="speedSet(-30)">

Последний раз редактировалось Deff, 27.06.2013 в 16:58.
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2013, 16:29
Новичок на форуме
Отправить личное сообщение для hostglin Посмотреть профиль Найти все сообщения от hostglin
 
Регистрация: 26.06.2013
Сообщений: 3

Спасибо большое, но что-то не работает и не могу найти ошибку даже через firebag, вернее показывает что-то непонятное.
Изображения:
Тип файла: jpg Безымянный.jpg (24.8 Кб, 8 просмотров)

Последний раз редактировалось hostglin, 27.06.2013 в 16:34.
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2013, 16:37
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

http://learn.javascript.ru/ifelse
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2013, 16:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от hostglin
но что-то не работает
Поправил
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2013, 17:21
Новичок на форуме
Отправить личное сообщение для hostglin Посмотреть профиль Найти все сообщения от hostglin
 
Регистрация: 26.06.2013
Сообщений: 3

Спасибо большое, это-то что нужно, даже диапазон можно выбирать, вообще круто. Эх, мне бы так научиться разбираться...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20