2016-09-06 2 views
0

В настоящее время близится к завершению слайд-шоу с использованием html и JavaScript. Моя последняя проблема заключается в создании кнопки остановки, которая должна использовать функцию возврата (я предполагаю) или какую-то функцию выхода. Это слайд-шоу изображений, которое запускается автоматически, может быть приостановлено, пропускать изображение, возвращать изображение и так далее. Я бы хотел, чтобы кнопка останова убила функцию автозапуска и вернула изображение на первое изображение по умолчанию. Я установил функцию, которую, как я предполагаю, абсолютно не прав, поскольку она не работает.Использование функции возврата/остановки при нажатии

HTML-

<td class="controls"> 

    <button onClick="autoRun()">Start</button> 
    <button onClick="changeImage(-1); return false;">Previous Image</button> 
    <button onClick="pause();">pause</button> 
    <button onClick="changeImage(1); return false;">Next Image</button> 
    <button onClick="Exit();">Exit</button> 



    </td> 

</tr> 

Все кнопки работают кроме последнего один

JavaScript

var images = ["HGal0.jpg", "HGal1.jpg", "HGal2.jpg", "HGal3.jpg", "HGal4.jpg", "HGal5.jpg", "HGal6.jpg", "HGal7.jpg", "HGal8.jpg", "HGal9.jpg", "HGal10.jpg", "HGal11.jpg", "HGal12.jpg", "HGal13.jpg", "HGal14.jpg", "HGal15.jpg"]; 
var interval = setInterval("changeImage(1)", 2000); 
var imageNumber = 0; 
var imageLength = images.length - 1; 

function changeImage(x) { 
imageNumber += x; 
// if array has reached end, starts over 
if (imageNumber > imageLength) { 
    imageNumber = 0; 
} 
if (imageNumber < 0) { 
    imageNumber = imageLength; 
} 

document.getElementById("slideshow").src = images[imageNumber]; 

return false; 
} 

function autoRun() { 
interval = setInterval("changeImage(1)", 2000); 

} 

function pause(){ 
clearInterval(interval); 
interval = null; 
} 

function Exit(){ 
return; 
} 

Я не в полной мере понять заявление возвращения в функции выхода , так как большинство примеров я посмотрел на запуск функции, когда «если» statem ent выполняется, тогда как я бы хотел, чтобы мой исполнялся, когда нажата кнопка «Стоп». Спасибо

ответ

1

Оператор return просто выходит из функции, в которой он появляется, это не приводит к остановке других вещей. Так что это:

function Exit(){ 
return; 
} 

... имеет тот же эффект, как это:

function Exit() { } 

То есть, функция ничего не делает вообще.

Я хочу, чтобы кнопка останова отключила функцию автозапуска и вернула изображение на первое изображение по умолчанию.

ОК, так что есть ваша Exit() вызов функции ваши другие функции:

function Exit() { 
    pause();   // this will stop the slideshow 
    imageNumber = 0; // reset to the first image 
    changeImage(0);  // change to that image 
} 
+0

Ahh теперь я вижу, гораздо лучше. Понятно также, спасибо большое за это –