我有这段代码:
<!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.png给我answer1.png
当我点击answer1.png给我另一个随机问题然后回答那个问题等等......我不想重复问题,直到所有显示然后再去另一个随机序列5图像和答案。
谢谢!
或者我可以使用链接而不是图像的不同网页,但更难以重复。你觉得怎么样?
答案 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);