2016-09-01 2 views
0

이전에 내 이미지 슬라이드 쇼의 일시 중지 단추를 만드는 데 도움이되었지만 특정 시점까지 작동하는 것 같습니다."시작"버튼을 클릭 할 때까지 자동 실행 기능을 중지하십시오.

슬라이드 쇼 자동 실행은 "시작"버튼을 클릭했을 때 실행됩니다. 일시 중지 버튼을 작동시키기 위해 코드를 사용하기 전까지는 정상적으로 작동했습니다. 이제 autoRun 함수는 페이지가로드 될 때 시작됩니다. 이 문제를 막을 수있는 방법이 있습니까? 시작 단추를 클릭하면 시작됩니다. 건배

html로

<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> 

자바 스크립트

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() { 
setInterval("changeImage(1)", 2000); 

} 

function pause(){ 
clearInterval(interval); 
} 
+0

interval을 정의, 변수로 interval 선언은'이제 자동 실행 기능이 시작 어딘가에 당신을 'autoRun()'을 실행해야합니다 ... 솔루션,하지 마세요 –

+0

@JaromandaX autoRun은 내가 게시 한 코드의 두 번에만 나타납니다. 한 번 html로 시작 버튼과 자바 스크립트 내의 기능 자체 –

+0

_ "이전에 내 이미지 슬라이드 쇼의 일시 정지 버튼을 만드는 데 도움이되었으므로 특정 지점에서 작동하는 것 같습니다."_ 이전 질문이 있습니다. 해결 되었습니까? – guest271314

답변

1

다음 코드 줄을 제거하고 그 VAR 간격을 도움이 있으면 알려 주시기 바랍니다 = setInterval을 ("changeImage (1)", 2000); 코드에 아무것도 당신이 원인이 게시되지 - - 페이지 loads` 때

+0

이것은 실제로 질문에 답합니다. 다음 문제는 일단 시작된 슬라이드 쇼를 멈출 수 없게 될 것입니다 : p –

+0

Jaromanda가 말한 것, 내가 그 코드 줄을 제거하면 원래 코드로 돌아갑니다. 내가 가지고있는, 잘 작동하지만 일시 중지 버튼을 더 이상 작동하지 않습니다, 어떤 날 다시 광장 하나 haha ​​ –

+0

롤, 좋아, 이런 식으로 뭔가를 할 필요가 'var interval = setInterval ("changeImage (1)" , 2000); pause(); ' – snit80

0

autoRun

<button onClick="autoRun()">Start</button> 
 
<button onClick="pause(); changeImage(-1); autoRun();">Previous Image</button> 
 
<button onClick="pause();">pause</button> 
 
<button onClick="pause(); changeImage(1); autoRun();">Next Image</button> 
 
<script> 
 
    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 = 
 
    console.log(images[imageNumber]); 
 

 
    return false; 
 
    } 
 

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

 
    function pause() { 
 
    clearInterval(interval); 
 
    interval = null; 
 
    } 
 
</script>

+0

절대 전설, 완벽하게 작동했습니다. 이것이 무엇을하고 있는지에 대한 간단한 설명이 가능한가? 건배. –

+0

@B.Cx'interval'은'autoRun'의 외부에서 선언되고'autoRun'이'interval = setInterval ("changeImage (1)", 2000)이라고 불릴 때 정의됩니다; 'pause(); changeImage (-1); autoRun();'은 이전에 호출되었고 이미지는'pause(); changeImage (1); autoRun()'은 모두 다음 이미지 클릭을 위해 호출됩니다. 'pause()'클리어 간격에서 인터벌을 null로 설정'clearInterval (interval); 간격 = null; – guest271314

관련 문제