javascript - 单击时更改图像(6 个图像循环)

标签 javascript html image

我有 6 张图像,我想通过单击图像来在它们之间交换,但我似乎无法正确获取代码以使其转到下一张图片

HTML

    <img src="BCover.jpg" id="ImgGallery" onclick="ImgGallery()"/>

JavaScript

var counter = 1;

ImgGallery.onclick = function (){
if (counter == 1){
    document.getElementById("ImgGallery").src = "BCover.jpg";
    counter++;
}
else if (counter == 2){
    document.getElementById("ImgGallery").src = "MechGP.jpg";
    counter++;
}
else if (counter == 3){
    document.getElementById("ImgGallery").src = "Mech2.jpg";
    counter++;
}
else if (counter == 4){
    document.getElementById("ImgGallery").src = "Mech3.jpg";
    counter++;
}
else if (counter == 5){
    document.getElementById("ImgGallery").src = "Mech4.jpg";
    counter++;
}
else if (counter == 6){
    document.getElementById("ImgGallery").src = "MCA1.png";
    counter==1;
}
};

最佳答案

问题(除了斯宾塞关于 == 赋值的评论之外)似乎是 ImgGallery 应该是函数的名称,而不是对元素的引用,因为它被作为函数调用img 元素的 onclick 属性。

我将 ImgGallery() 函数重命名为 rotateGallery,以消除元素 id 的歧义。

我还通过使用数组循环而不是 switch 语句来稍微清理您的代码来处理 img 库旋转。

<img src="BCover.jpg" id="ImgGallery" onclick="rotateGallery()"/>


var counter = 0,
    gallery = ["BCover.jpg", "MechGP.jpg", "Mech2.jpg", "Mech3.jpg", "Mech4.jpg", "MCA1.png"],
    rotateGallery = function () {
        document.getElementById("ImgGallery").src = gallery[counter];
        counter++;
        if (counter >= gallery.length) {
            counter = 0;
        }
    };

关于javascript - 单击时更改图像(6 个图像循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982976/

相关文章:

javascript - 每次页面刷新后用户个人资料信息都会重置(使用 Hello.js)

使用相同覆盖变量的 javascript 对象

javascript - 如何使用 token 在 Angular Material 表中设置服务器端分页

html - CSS 下拉导航更改悬停颜色

javascript - jQuery 设置和获取下拉列表和输入的本地存储数据

javascript - 更改产品 "showoff"的图像 src

android - 如何从 Jetpack Compose 中的 drawable 加载图像?

image - 缩放时使电影中的图像成比例?

javascript - 如何解决 Google Visualization - Materials Line 中的重叠问题

javascript - javascript中的函数有作用域吗?