javascript - 随机图像两个位置相同的集合

标签 javascript

所以基本上我正在寻找的是如何获得随机图像 javascript 代码,但图像位于两个不同的 div 中,但我希望随机图像来自同一个数组。

我打算今年夏天去上一门JS课,所以我不用再问了,因为我觉得这应该很简单......

目前我只是在两个不同的位置使用来自 javascript 工具包的代码:

<script language="JavaScript">
<!--

/*
Random Image Script- By JavaScript Kit (http://www.javascriptkit.com) 
Over 400+ free JavaScripts here!
Keep this notice intact please
*/

function random_imglink(){
    var myimages=new Array()
    //specify random images below. You can have as many as you wish
    myimages[1]="image1.gif"
    myimages[2]="image2.gif"
    myimages[3]="image3.gif"
    myimages[4]="image4.gif"
    myimages[5]="image5.gif"
    myimages[6]="image6.gif"

    var ry=Math.floor(Math.random()*myimages.length)
    if (ry==0)ry=1
    document.write('<img src="'+myimages[ry]+'" border=0>')
}
random_imglink()
//-->
</script>

但我希望达到的是:

<script language="JavaScript">
<!--

/*
Random Image Script- By JavaScript Kit (http://www.javascriptkit.com) 
Over 400+ free JavaScripts here!
Keep this notice intact please
*/

function random_imglink(){
    var myimages=new Array()
    //specify random images below. You can have as many as you wish
    myimages[1]="image1.gif"
    myimages2[1]="image1a.gif"
    myimages[2]="image2.gif"
    myimages2[2]="image2a.gif"

    var ry=Math.floor(Math.random()*myimages.length)
    if (ry==0) ry=1
    document.write('<img src="'+myimages[ry]+'" border=0>')
}
random_imglink()
//-->
</script>

DIVS 中的渲染代码

<div class="one"><img src="img1.gif"></div>
<div class="two"><img src="img1a.gif"></div>

刷新

<div class="one"><img src="img2.gif"></div>
<div class="two"><img src="img2a.gif"></div>

最佳答案

这是一种特殊的方法。

我首先确定我计划使用的所有变量:

var rIndex1, rIndex2, 
    oContainer1, oContainer2, 
    aImages;

现在我将初始引用分配给 DOM 容器,并填充我的图像数组:

oContainer1 = document.getElementById("left");
oContainer2 = document.getElementById("right");
aImages = ['http://placekitten.com/200/200','http://placekitten.com/201/201',
           'http://placekitten.com/202/202','http://placekitten.com/203/203',
           'http://placekitten.com/204/204','http://placekitten.com/205/205'];

因为我会多次生成随机索引值,所以我为此逻辑创建了一个简单的函数:

function rIndex ( iMax ) {
  return Math.floor( Math.random() * iMax );
}

为了反复查看效果,我在一个匿名函数中运行逻辑,存储在每秒运行的时间间隔内。当然,您可以将它包装在一个命名函数中,只调用一次。

setInterval(function(){

为我的索引变量设置初始随机值。

  rIndex1 = rIndex( aImages.length );
  rIndex2 = rIndex( aImages.length );

我们不希望两个图像相同,所以只要我们选择了相同的值,我们就可以为第二个索引选择另一个索引值。

  while ( rIndex2 == rIndex1 ) rIndex2 = rIndex( aImages.length );

最后,我用新的图像元素覆盖了容器的 innerHTML 属性。

  oContainer1.innerHTML = '<img src="%s" />'.replace( /%s/, aImages[ rIndex1 ] );
  oContainer2.innerHTML = '<img src="%s" />'.replace( /%s/, aImages[ rIndex2 ] );

}, 1000);

演示:http://jsbin.com/ubuxoj/edit#javascript,html

这可以改进一点。例如,当 aImages[2] 当前显示在 oContainer2 中时,它可能会在下一次重新应用。您可以检查以确保您只选择一个图像,而不是当前显示在容器中的图像。

关于javascript - 随机图像两个位置相同的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273595/

相关文章:

javascript - 根据其他选择下拉列表填充选择下拉列表

javascript - 使用 jQuery,为 Select2 选择下拉列表赋值不起作用

javascript - 从nodejs服务器将数据发送到另一个html中的对象

javascript - 单击提交输入的单选按钮

Javascript getFullYear、getMonth、getDate 不起作用

javascript - 寻找基于jsdoc的汽车API文档wiki解决方案

javascript - 将 onclick 分配给函数问题

适用于 Windows 的 Javascript 控制台,例如 JSC

javascript - 由于同步调用而推迟样式更改

javascript - 在 JavaScript if 条件中比较 jQuery(this)