繁体   English   中英

随机画廊阵列

[英]Randomize gallery array

我正在尝试随机化图像库。 HTML仅包含图像,其想法是获取数组,将其洗净并添加到用作缩略图的div中。 我从这里获取了改组的代码(Durstenfeld版本): 如何随机化(改组)JavaScript数组?

我的代码:

var pics = document.getElementsByTagName("img");

//the Durstenfeld shuffle
for (m = pics.length - 1; m > 0; m--) {
    var k = Math.floor(Math.random() * (m + 1));
    var temp = pics[m];
    pics[m] = pics[k];
    pics[k] = temp;
}

//giving ID to each image and adding them to a thumbnail div
for (e = 0; e < pics.length; e++) {
    pics[e].id = e;
    var photo = document.getElementById(e);
    var parent_section = photo.parentNode;
    var new_div = document.createElement("div");
    new_div.classList.add("thumbnail");
    new_div.appendChild(photo);
    parent_section.appendChild(new_div);
}

事实是,这在IE中工作得很好,但是在我尝试过的所有其他浏览器中,图像只是按照默认顺序(它们在HTML中写入的顺序)放置。 改组本身应该是正确的,所以我确定我的实现有问题,但是我无法弄清楚。

您的数组不是数组。 做这个:

var pics = Array.from(document.getElementsByTagName("img"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM