gpt4 book ai didi

javascript - 如何使用 JavaScript 在每次点击图像时更改图像标签的 URL?

转载 作者:行者123 更新时间:2023-11-30 17:54:06 25 4
gpt4 key购买 nike

我有一个元素在 HTML 页面上显示图像。该元素的来源是 JavaScript 数组中的许多不同图像之一。我已经有了一个循环浏览图像、创建幻灯片效果的脚本,但现在我想用按钮手动浏览图像。

到目前为止,这是我的代码,但是单击按钮时我没有得到任何响应。

function nextup() 
{
imgs = [];
imgs[0] = "/snakelane/assets/images/thumb/_1.jpg"; imgs[10] = "/snakelane/assets/images/thumb/_19.jpg";
imgs[1] = "/snakelane/assets/images/thumb/_2.jpg"; imgs[11] = "/snakelane/assets/images/thumb/_20.jpg";
imgs[2] = "/snakelane/assets/images/thumb/_3.jpg"; imgs[12] = "/snakelane/assets/images/thumb/_21.jpg";
imgs[3] = "/snakelane/assets/images/thumb/_4.jpg"; imgs[13] = "/snakelane/assets/images/thumb/_22.jpg";
imgs[4] = "/snakelane/assets/images/thumb/_5.jpg"; imgs[14] = "/snakelane/assets/images/thumb/_23.jpg";
imgs[5] = "/snakelane/assets/images/thumb/_6.jpg"; imgs[15] = "/snakelane/assets/images/thumb/_24.jpg";
imgs[6] = "/snakelane/assets/images/thumb/_7.jpg"; imgs[16] = "/snakelane/assets/images/thumb/_25.jpg";
imgs[7] = "/snakelane/assets/images/thumb/_8.jpg"; imgs[17] = "/snakelane/assets/images/thumb/_26.jpg";
imgs[8] = "/snakelane/assets/images/thumb/_9.jpg"; imgs[18] = "/snakelane/assets/images/thumb/_27.jpg";
imgs[9] = "/snakelane/assets/images/thumb/_32.jpg"; imgs[19] = "/snakelane/assets/images/thumb/_28.jpg";

var pic = document.getElementById("picbox");

for(i =0; i < imgs.length; i++) {

var current = indexOf(pic.src);
var next = Math.round(current + 1);
pic.src = imgs[next];
}
}

任何人都可以告诉我我的代码有什么问题或建议更好的方法吗?

最佳答案

您使用的方法存在多个问题。看看下面修改后的函数。如果您需要任何解释,请告诉我。

以下代码将使用包含图像 URL 的数组,然后在点击时以顺序方式分配给 img 标签。享受吧!

Here you can try to see the output.

function nextup(){

//Initialized img array with 10 images, you can do it any way you want to.

var imgs = [];
for(i=0;i<10;i++){
imgs[i] = "http://lorempixel.com/output/cats-q-c-100-100-"+(i+1)+".jpg";
}

//Fetch the pic DOM element by ID

var pic = document.getElementById("picbox");

//Know what is position of currently assigned image in array.

var current = imgs.indexOf(pic.src);
var next = 0;
//Handle case if no image is present, the initial case.
if(current!=-1){
next = (current + 1)%(imgs.length);
}

//Assign the next src
pic.src = imgs[next];

}
//Scoped outside to call the function first time on load.

nextup();

我在你的代码中发现了以下问题:

  1. 您尝试使用 indexOf 而未指定必须在其中执行搜索的数组。想象一下,校长要求某人去查找约翰是否在教室,但没有指定具体的教室。
  2. 为了遍历数组,您使用了 next 变量,如果您需要无限循环,这可能是个好主意。但在这里,由于我们限制为 10 或 20 张图像,我们需要确保如果当前选择的图像是最后一张,我们会发现 next 变为 21(假设总共有 20 张图像。)这将尝试越界访问变量。

因此我使用了 mod 运算符 %。对于 JavaScript 中的引用,5%10 将返回 515%10 将返回 5 等等。阅读有关 mod 运算符的更多信息 HERE .

关于javascript - 如何使用 JavaScript 在每次点击图像时更改图像标签的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418506/

25 4 0