-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);
}

这是我旋转图像的方式(这个块对于三个图像容器出现了三个):

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 原来是未定义的。

此外,如果我单击无序的图像,其他帧的图像将变为空白。在此示例中,我有三个图像,如果单击第三个容器,则第一个容器变为空白,当间隔函数分开时,这将如何影响其他帧。但是,按顺序单击它时没有问题。请注意,我更改了将 if 条件放入 setInterval 的顺序。

4

1 回答 1

2

.src属性将返回一个完全限定的路径名​​,当您尝试使用.indexOf().

您可以使用.getAttribute("src")来获取 HTML 中的实际内容,然后应该与您的数组中的内容相匹配。

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

于 2013-05-23T04:24:43.613 回答