脚本显示在页面加载时从数组中随机选择的图像
Script to display an image selected at random from an array on page load
我在一个网站的主页上使用一个脚本,用于显示从数组中随机选择的图像的摄影师。我找到了两个执行此功能的不同脚本。我想知道哪个脚本是可取的,如果它已经写正确或可以改进。我想知道是否有可能包含一个函数,该函数可以防止同一图像加载两次,直到数组中的所有图像都被使用。谢谢你看一看。
版本1
<script type="text/javascript">
<!--
var theImages = new Array()
theImages[1] = 'portrait/fpo/01.jpg'
theImages[2] = 'portrait/fpo/02.jpg'
theImages[3] = 'portrait/fpo/03.jpg'
theImages[4] = 'portrait/fpo/04.jpg'
theImages[5] = 'portrait/fpo/05.jpg'
theImages[6] = 'portrait/fpo/06.jpg'
theImages[7] = 'portrait/fpo/07.jpg'
theImages[8] = 'portrait/fpo/08.jpg'
theImages[9] = 'portrait/fpo/09.jpg'
theImages[10] = 'portrait/fpo/10.jpg'
var j = 0
var p = theImages.length;
var preBuffer = new Array()
for (i = 0; i < p; i++){
preBuffer[i] = new Image()
preBuffer[i].src = theImages[i]
}
var whichImage = Math.round(Math.random()*(p-1));
function showImage(){
document.write('<img src="images/'+theImages[whichImage]+'">');
}
// -->
</script>
<table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
<tr valign="middle"><td align="center">
<a href="index.html"><script type="text/javascript">showImage();</script></a>
</td></tr>
</table>
版本2
<script type="text/javascript">
<!--
var ic = 11; // Number of alternative images
var xoxo = new Array(ic); // Array to hold filenames
xoxo[0] = "images/portrait/fpo/01.jpg"
xoxo[1] = "images/portrait/fpo/02.jpg"
xoxo[2] = "images/portrait/fpo/03.jpg"
xoxo[3] = "images/portrait/fpo/04.jpg"
xoxo[4] = "images/portrait/fpo/05.jpg"
xoxo[5] = "images/portrait/fpo/06.jpg"
xoxo[6] = "images/portrait/fpo/07.jpg"
xoxo[7] = "images/portrait/fpo/08.jpg"
xoxo[8] = "images/portrait/fpo/09.jpg"
xoxo[9] = "images/portrait/fpo/10.jpg"
xoxo[10] = "images/portrait/fpo/11.jpg"
function pickRandom(range) {
if (Math.random)
return Math.round(Math.random() * (range-1));
else {
var now = new Date();
return (now.getTime() / 1000) % range;
}
}
// Write out an IMG tag, using a randomly-chosen image name.
var choice = pickRandom(ic);
// -->
</script>
<table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
<tr valign="middle"><td align="center">
<a href="index-alternate.html"><script type="text/javascript">document.writeln('<img src="'+xoxo[choice]+'" >');</script></a>
</td></tr>
</table>
此代码将随机加载图像并将其各自的链接加载。
<html>
<head/>
<title>Jorgesys Android</title>
<script type="text/javascript">
var imageUrls = [
"http://stacktoheap.com/images/stackoverflow.png"
, "http://stacktoheap.com/images/stackoverflow.png"
, "http://stacktoheap.com/images/stackoverflow.png"
, "http://stacktoheap.com/images/stackoverflow.png"
, "http://stacktoheap.com/images/stackoverflow.png"
, "http://stacktoheap.com/images/stackoverflow.png"
];
var imageLinks = [
"http://www.stackoverflow.com"
, "http://www.reforma.com"
, "http://www.nytimes.com/"
, "http://www.elnorte.com/"
, "http://www.lefigaro.fr/international/"
, "http://www.spiegel.de/international/"
];
function getImageHtmlCode() {
var dataIndex = Math.floor(Math.random() * imageUrls.length);
var img = '<a href='"' + imageLinks[dataIndex] + '"><img src="';
img += imageUrls[dataIndex];
img += ''" alt='"Jorgesys Android'"/></a>';
return img;
}
</script>
</head>
<body bgcolor="black">
<script type="text/javascript">
document.write(getImageHtmlCode());
</script>
</body>
</html>
决定把它作为一个答案。
通知你…第一个版本里你少了一张照片,顺便说一句。
我选2。1是预先加载所有图像(如果你要更改图像,做幻灯片放映类型的事情更有用)。因此,它使用更多的带宽,将使您的页面加载更慢。
2看起来不错,但我可能会将pickRandom(ic)更改为pickRandom(xoxo.length),这样您就不必在添加更多图像时忘记更新ic。
您可能想要为用户(lasttimageindex)创建一个cookie来遍历条目。如果没有可用的cookie,就使用随机图像。否则,从随机图像开始。然后每次访问都用cookie增量。当到达长度时,返回0。
function getCookieValue(choice){
// read cookie here, if found, parseInt(cookieValue,10) and assign to choice
// Then return choice (either original value or updated)
return choice;
}
var choice = pickRandom(xoxo.length);
choice = getCookieValue(choice);
// Check if it correspond to an image
if (choice >= xoxo.length) choice = 0;
// Store the cookie here. Store choice++
该描述与您所要求的略有不同,因为它是针对每个用户的,但我敢打赌它会为您提供更多您正在寻找的结果。
相关文章:
- Jquery/Javascript:通过按下按钮显示数组中的随机图像
- Javascript-从随机的单词数组中创建段落
- JavaScript-从对象数组中输出随机OBJECT
- 数组中的随机文本字符串
- Javascript从数组中随机选择并按字母顺序排列
- 如何在数组javascript中选择伪随机值
- 从数组中随机抽取的最佳方式
- 在两个位置显示数组中的随机单词
- 从数组中随机采样子集
- Javascript - 如何按顺序从数组中挑选随机元素
- Javascript 数组随机丢失一个元素
- Javascript从数组中选择一个随机对象集
- 如何从包含1000个项目的数组中随机选择一个项目
- 从数组中随机选择项,仅在以前未使用过时使用
- 从数组随机重定向URL
- 从数组随机项-不能找到变量:getElementById
- 二维数组随机生成器
- 从零重复的数组随机生成名称
- Javascript数组随机得到零
- 数组随机返回的茉莉测试