如何使用jquery在页面加载和每次刷新时随机更改内嵌图像?

时间:2010-04-23 05:01:45

标签: javascript jquery css xhtml

在每次刷新或加载页面时,从文件夹随机显示内嵌图像的最佳轻量级方法是什么?使用jQuery。

就像这个http://javascript.internet.com/miscellaneous/random-image.html

的jQuery版本一样

更新:4月24日

这正是我想要的,我只需要不引人注目的jQuery版本

<div class=”me-box”>

<script language=”JavaScript”>
function banner() { } ; b = new banner() ; n = 0
b[n++]= “<img name=randimg src=’images/me.jpg’ >”
b[n++]= “<img name=randimg src=’images/me2.jpg’ >”
b[n++]= “<img name=randimg src=’images/me4.jpg’ >”
b[n++]= “<img name=randimg src=’images/me5.jpg’ >”
b[n++]= “<img name=randimg src=’images/me6.jpg’ >”
b[n++]= “<img name=randimg src=’images/me3.jpg’ >”
i=Math.floor(Math.random() * n) ;
document.write( b[i] )
</script>

</div>

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

jQuery本身无法读取文件夹的内容。除非你做一些魔法,比如命名文件,例如1.jpg,2.jpg并在脚本中包含一个上限。

您应该使用服务器端语言来读取文件夹并将一些JSON传递给您的JavaScript。然后循环JSON并显示。

$.getJSON('get/files', function(data) {

    $.each(data, function(image) {
        $('#my-div ul').append('<li><img src="' + image + '" alt="" />');
    });

});

答案 2 :(得分:0)

我想这取决于你说的有多少照片以及它们是否经常变化。假设没有多少,列表将保持不变。您可以将它们的文件名转换为数组,然后根据数组索引的长度随机生成一个数字。

$(document).ready(function() {
    var rndNumber;
    var displayPictures = new Array();
    displayPictures[0...n] = 'filename.jpg';

    rndNumber = (Math.floor(Math.random()*displayPictures.length));

    $('#picture_tag_id_name').attr('src', 'images/'+displayPictures[rndNumber]);

});

当我在网站上尝试此操作时,我使用内联PHP循环遍历图像文件夹的内容,并使用所有图像路径的字符串“回显”填充数组的行。

可能不是最好的方式,但这是一种方式。