0

JavaScript を使用して数秒ごとに画像を変更する画像ギャラリーがあるサイトがあります。ただし、ユーザーが画像のいずれかをクリックしたときに画像が変更されないようにする方法を知りたいです。

これまでのところ、画像は計画どおりに回転していますが、ユーザーが画像をクリックしたときに回転を停止する「onClick」スクリプトを取得できないようです。警告ポップアップを表示したり、何かを実行したりする必要はありません。誰かが画像の 1 つをクリックしたときに画像の回転を停止する必要があるだけです。

私が持っているHTMLコードは次のとおりです。

4

2 に答える 2

1
else (getValue=='STOP')
{
    alert("STOPPED");

}

それはあなたがおそらくやりたいことをしません。そのはず:

else if (getValue=='STOP')
{
    alert("STOPPED");

}
于 2013-02-10T21:59:33.680 に答える
0

まず、コードの行の 1 つでキーワード「IF」を見逃しています。

ただし、終了可能な反復アクションを作成する方法は、setInterval を使用してから、clearInterval を使用して反復を終了することです。

semaphore = setInterval(somefunction, someinterval);
clearInterval(semaphore);

例(私はこれをすぐに書いたので、いくつかのエラーがあるかもしれませんが、あなたはアイデアを得ることができます):

<img src="./images/image1.jpg" id="imageGallery" name="imageGallery"
 onclick="chooseImg(this)" />

<script>

var turn = setInterval(function(){imgTurn()},5000);
var images = function2CreateImgArray();
var imageN = 0;

function chooseImg(img){
  clearInterval(turn);
  function2DisplayImg(imageN); // or do whatever
}

function imgTurn(){
   if (imageN++ >= images.length) imageN = 0;
   function2DisplayImg(imageN++);
}

</script>

setInterval を setTimeout に置き換えることができます。

var turn = setTimeout(function(){imgTurn()},5000);

ただし、それを停止するには clearTimeout を使用する必要があります。

clearTimeout(turn);

ただし、setTimeout を使用すると、次の画像表示のために setTimeout が必要になるため、回転を停止するために clearTimeout を行う必要さえありません。

<img src="./images/image1.jpg" id="imageGallery" name="imageGallery"
 onclick="chooseImg(this)" />

<script>

setTimeout(function(){imgTurn()},5000);
var images = function2CreateImgArray();
var imageN = 0;
var turn = 1;

function chooseImg(img){
  turn = 0;
  function2DisplayImg(imageN); // or do whatever
}

function imgTurn(){
   if (turn==0) return;
   if (imageN++ >= images.length) imageN = 0;
   function2DisplayImg(imageN++);
}

</script>
于 2013-02-10T22:30:35.807 に答える