Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как регулировать скорость смены слайдов? (https://javascript.ru/forum/misc/39376-kak-regulirovat-skorost-smeny-slajjdov.html)

hostglin 27.06.2013 14:54

Как регулировать скорость смены слайдов?
 
Вложений: 1
Здравствуйте! Я пока новичок в 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

Deff 27.06.2013 15:01

Ну к примеру:
<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)">

hostglin 27.06.2013 16:29

Вложений: 1
Спасибо большое, но что-то не работает :-? и не могу найти ошибку даже через firebag, вернее показывает что-то непонятное.

animhotep 27.06.2013 16:37

http://learn.javascript.ru/ifelse

Deff 27.06.2013 16:58

Цитата:

Сообщение от hostglin
но что-то не работает

Поправил

hostglin 27.06.2013 17:21

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


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