5

我想在浏览器中完全加载或下载图像后加载图像。我不想在下载图像时显示图像。相反,我想显示该图像的较低质量版本,直到在后台加载高质量图像,并且当图像在后台完全加载时,我想用该图像替换较低质量的图像。

我有两张图片,说

$LQimage = "LQabc.jpg";

$HQimg = "HQabc.jpg";

我怎样才能让它工作?

编辑 使用@codebox 发布的答案,此代码有效.. 谢谢:)

<html>
<head>
<script type="text/javascript">
function load(){
    var img = new Image();
    var imgUrl = 'HQabc.jpg';
    img.onload = function(){
        // this gets run once the image has finished downloading
        document.getElementById('pp').src = imgUrl;
    }
    img.src = imgUrl; // this causes the image to get downloaded in the background
}
</script>
</head>
<body onload="load()">
    <img id="pp" src="LQabc.jpg" width=600/>
</body>
</html>
4

1 回答 1

5

这应该这样做:

function preLoadImage(){
    var img = new Image();
    var imgUrl = 'HQabc.jpg';
    img.onload = function(){
        // this gets run once the image has finished downloading
        document.getElementById('idOfImgElement').src = imgUrl;
    }
    img.src = imgUrl; // this causes the image to get downloaded in the background
}

如果您在页面加载后运行此函数,它应该可以工作:

<body onload="preLoadImage()">
于 2012-09-06T08:14:43.463 回答