javascript - 多个图像阵列,单击按钮即可随机化图像

标签 javascript arrays

如您所见,我有三个数组,每个数组存储三个单独的图像。目前,您可以通过鼠标单击图像来循环浏览每个数组,以便每次获取新图像。我想做的是合并“随机!”下面的按钮要求每个阵列从各自的阵列中更改为随机图像,并同时执行此操作。假设您点击“随机!”然后每个数组将从自身内部随机选择一个图像并显示它。

我不知道如何去做这件事。有什么想法吗?

<script type="text/javascript">
    imgs=Array("pic1.jpg","pic2.jpg","pic3.jpg");
    var x=0;

    function change() {
    document.getElementById("img").src=imgs[++x];

    if (x==2) {
        x=-1;
    }
    }
    if (!imgs[x+1]) {
        x=-1;
    }
</script>

<img src="pic1.jpg" id="img" onmousedown="change()" style="cursor: pointer;">
<img src="" id="img" alt="" onmousedown="change()"><br>

<!-- /slider -->

<script type="text/javascript">
    imgs1=Array("pic4.jpg","pic5.jpg","pic6.jpg");
    var x1=0;

    function change1() {
    document.getElementById("img1").src=imgs1[++x1];

    if (x1==2) {
        x1=-1;
    }
    }
    if (!imgs1[x1+1]) {
        x1=-1;
    }
</script>

<img src="pic4.jpg" id="img1" onmousedown="change1()" style="cursor: pointer;">
<img src="" id="img1" alt="" onmousedown="change1()"><br>

<!-- /slider1 -->

<script type="text/javascript">
    imgs2=Array("pic7.jpg","pic8.jpg","pic9.jpg");
    var x2=0;

    function change2() {
    document.getElementById("img2").src=imgs2[++x2];

    if (x2==2) {
        x2=-1;
    }
    }
    if (!imgs2[x2+1]) {
        x2=-1;
    }
</script>

<img src="pic7.jpg" id="img2" onmousedown="change2()" style="cursor: pointer;">
<img src="" id="img2" alt="" onmousedown="change2()"><br>

<!-- /slider2 -->

    <a href="#" data-role="button">Random!</a>

最佳答案

您可以使用随机器函数来选择随机数组索引:

function getRandomIndex(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

因此,在您的更改功能中,您可以执行以下操作:

document.getElementById("img1").src=imgs1[getRandomIndex(0,imgs1.length - 1)];

关于javascript - 多个图像阵列,单击按钮即可随机化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465374/

相关文章:

javascript - 我如何将数据从 Django 模板传递到 Angular 4?

c - 如何在函数内 malloc 结构体数组?代码以其他方式工作

javascript - 密码的正则表达式(Javascript)

javascript - Javascript 将未声明的函数用作对象的能力如何帮助在计算机之间划分任务?

c - 如何将 char* 复制到 char[][]

c++ - 尝试读取数组C++时For循环崩溃程序

javascript读取csv文件返回空数组

arrays - 为什么 Rust 中的 for 循环可以遍历切片或迭代器,而不是数组?

javascript - 数组中不应该重复的重复变量

javascript - 相对于另一个元素定位一个元素