Javascript - 加载gif出现

时间:2012-12-22 04:29:15

标签: javascript html image loader

我有一个页面,其中使用javascript函数加载随机图像。

以下是头标记。

function pickimg(){ 
var imagenumber = 101 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1;
images = new Array
images[1] = "images/1.jpg"
images[2] = "images/2.gif"
images[3] = "images/3.jpg"
images[4] = "images/4.jpg"
images[5] = "images/5.gif"
images[6] = "images/6.jpg"
images[7] = "images/7.jpg"
images[8] = "images/8.jpg"
images[9] = "images/9.jpg"
var image = images[rand1]
document.randimg.src = image
}
</script>

然后在体内:

<body onLoad="pickimg()">
<a href="" onClick="pickimg();return false;"><IMG SRC="images/ajax-loader.gif"     name="randimg" border=0></a>

选择随机图像。单击图像时,将加载一个新图像,然后显示。这可能需要一两秒钟。在用户点击后,我希望在下一个图像加载时显示ajax-loader。我是新手,我尝试了各种各样的东西,但没有什么能给我我想要的结果。请帮忙,谢谢。

3 个答案:

答案 0 :(得分:1)

首先,请用以下内容(在结束脚本标记之前)替换该代码,以使其正确:

function pickimg(){ 
   var imagenumber = 101, ext,
        images = new Array(10), i=0,
        randomnumber = Math.random(),
        rand1 = 1 + Math.round((imagenumber-1) * randomnumber);
    while (++i<10) {
        ext = (i===2||i===5)? ".gif" : ".jpg";
        images[i] = "images/"+ i + ext;
    }
    document.randimg.src = images[rand1];
}

答案 1 :(得分:0)

预加载加载图片。然后,不是将源直接更改为新图像,而是将其更改为加载程序,然后将其更改为新图像。这将导致加载程序立即显示(因为它已预加载),然后新图像将在准备就绪时显示。

答案 2 :(得分:0)

虽然在您的示例代码中找不到Ajax加载器,但答案如下:

getImage: function(fn){
                var url = "/apps/blah/imgpath/",
                    $imgContentContainer = $("myselector");
                $imgContentContainer.html(loadingImgTag);
                $.ajax({
                    async: false,
                    url: url + fn,
                    success: function(d){ $imgContentContainer.html(theAjaxLoadedImg); }
                });
            }