关于更改图像的jQuery进度条.attr('src')

时间:2012-10-15 23:31:47

标签: jquery progress-bar jquery-attributes image-load

我在HTML中声明了一个图像:

<img src="images/image_01.gif" id="man_img_file" width="400" height="300" alt="image_01" />

我正在通过jQuery更改图像:

$('#man_img_file').attr('src', "images/image_02.gif");

现在我想在图像加载时显示一个百分比进度条(即,当新的src图像通过jQuery加载时)。怎么能实现这一目标?可以使用jQuery进度条完成吗?

注意:图像已经在服务器中,我可以在加载之前通过PHP脚本获取图像大小。

2 个答案:

答案 0 :(得分:5)

您可能无法添加进度条,因为我不知道如何通过使用Javascript来确定已加载了多少图像。

但是,您可以使用Image对象并在新图像加载时显示旋转的“加载”gif:

function LoadNewImage(target, url) {
    var newImage = new Image();

    // some overlay div
    loadingOverlay.show();

    newImage.src = url;

    newImage.onload = function() {
        // image is loaded into browser memory, so will display instantly
        target.attr('src', url);

        // hide the overlay again
        loadingOverlay.hide();
    }
}

以下是一些可能有用的链接:

Preload images with javascript

Show a loading overlay

答案 1 :(得分:0)

感谢Laurence分享。

  1. 在改变&#39; src&#39;使用jQuery属性,加载的字节数不能即时检查(使用javascript)。
  2. 但是,在加载图像时,可以显示加载消息/图像。 (查看劳伦斯的上述答案以获得解决方案)
  3. 正如Laurence所说,&#34;如果您对HTML5以及IE9之上的任何内容感到满意,您可以使用XHR显示这一点:http://blogs.adobe.com/webplatform/2012/01/13/html5-image-progress-events/(请参阅此处的示例:http://blogs.adobe.com/webplatform/files/XHRProgressSample.html?file=XHRProgressSample.html) &#34;
相关问题