-1

回転画像を表示しています。

var pics= [
    "images/img1.jpg",
    "images/img2.jpg",
    "images/img3.jpg",
];

そしてやめてほしいonClick

function StopRotate(interval, imgIndex) {
    clearInterval(interval);
    var permanentImage = picture[imgIndex].src;
    picture[imgIndex].src = permanentImage;
    pics.splice(pics.indexOf(picture[imgIndex].src), 1);
}

画像を回転させる方法は次のとおりです (このブロックには、3 つの画像コンテナーに対して 3 つのオカレンスがあります)。

interval0 = setInterval(function () {
    if(pics.length != 1) {
        picture[0].src = pics[count];
        count++;
        if (count == pics.length) count = 0;
    }
    else picture[0].src = pics[0];
}, 10);

ただし、パスが配列から既に削除されている場合でも、画像は他のフレームに再び発生します。12枚の画像を使ってみました。実行すると、srcが未定義になることがあります。

また、画像を順番通りにクリックすると、他のフレームの画像が空白になります。このサンプルには 3 つの画像があります。3 番目のコンテナーをクリックすると、最初のコンテナーが空白になります。間隔関数が分離されている場合、他のフレームにどのような影響がありますか。ただし、順番にクリックする場合は問題ありません。setInterval 内に if 条件を入れる順序を変更したことに注意してください。

4

1 に答える 1

2

この.srcプロパティは、 で検索しようとすると、部分パス名の配列には決して見つからない完全修飾パス名を返します.indexOf()

を使用.getAttribute("src")して、実際に HTML にあるものを取得できます。これは、配列にあるものと一致するはずです。

例: http://jsfiddle.net/jfriend00/3H8XF/

于 2013-05-23T04:24:43.613 に答える