Javascript随机图像和答案

时间:2015-01-21 07:46:28

标签: javascript random

我有这段代码:

<!DOCTYPE html>
<html>
<head>

<script language="JavaScript">
<!-- Hide from old browsers


function pickimg(){
var imagenumber = 5 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1;
images = new Array
images[1] = "1.png"
images[2] = "2.png"
images[3] = "3.png"
images[4] = "4.png"
images[5] = "5.png"
var image = images[rand1]
document.randimg.src = image
}
// -- End Hiding Here -->
</script>

</head>


<body onLoad="pickimg()">

<a href="" onClick="pickimg();return false;"><IMG SRC="YOUR IMAGE" name="randimg" border=0></a>


</body>
</html>

这给我一个随机图像,当我点击它时它会改变。 这个图像是5个数学问题,我想添加5个答案图片:answer1.png,answer2.png ... answer5.png

我希望我的脚本能够这样做:

  1. 当我进入网页给我一个随机图像(问题)

  2. 当我点击它给我答案图片。防爆。如果随机图像是1.png给我answer1.png

  3. 当我点击answer1.png给我另一个随机问题然后回答那个问题等等......我不想重复问题,直到所有显示然后再去另一个随机序列5图像和答案。

  4. 谢谢!

    或者我可以使用链接而不是图像的不同网页,但更难以重复。你觉得怎么样?

3 个答案:

答案 0 :(得分:0)

一种可能性是对数组进行洗牌(请参阅How to randomize (shuffle) a JavaScript array?了解如何操作),然后您可以简单地对洗牌数组进行迭代。

答案 1 :(得分:0)

有人帮我这个代码。效果很好。     

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>
 <base href="http://www.vicsjavascripts.org/StdImages/" />
</head>

<body>
<img id="question" src="1.gif" style="visibility:hidden;" onclick="Question('question','answer',QAArray,false);"/> 
<br/>
<img id="answer" src="Egypt5.jpg"  style="visibility:hidden;"onclick="Question('question','answer',QAArray,true);" />

<script type="text/javascript">
/*<![CDATA[*/

var QAArray=[
 ['1.gif','Egypt5.jpg'],
 ['2.gif','Egypt6.jpg'],
 ['3.gif','Egypt7.jpg'],
 ['4.gif','Egypt8.jpg']

]

function Question(q,a,ary,qa){
 var qo=document.getElementById(q),ao=document.getElementById(a),o=Question[a];
 if (!o||!o.a[0]){
  Question[a]=o={
   a:ary.concat().sort(function(){return 0.5 - Math.random();})
  }
 }
 if (o&&o.a[0]){
  if (qo.style.visibility=='hidden'){
   qo.style.visibility='visible';
   qo.src=o.a[0][0];
   ao.src=o.a[0][1];
  }
  if (qa===false&&ao.style.visibility=='hidden'){
   ao.style.visibility='visible';
  }
  else if (qa===true){
   qo.style.visibility=ao.style.visibility='hidden';
   o.a.splice(0,1);
   Question(q,a,ary);
  }
 }
}

Question('question','answer',QAArray);

/*]]>*/
</script>
</body>

</html>

答案 2 :(得分:0)

您可以使用 sort() 来混洗这样的数组。

let yourArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
yourArray.sort(() => Math.random() - 0.5);
console.log(yourArray);