首页 > 其他 > 详细

图片预加载

时间:2017-03-04 18:49:28      阅读:215      评论:0      收藏:0      [点我收藏+]

在编码过程中,图片处理经常会遇到问题

看如下这段代码:

HTML部分

<div id="container">
    <img src="css系列/imgs/旋转木马的图片/2.jpg" alt="" id="img">
</div>

Js部分:

var oImg = document.getElementById("img");
console.log(oImg.offsetWidth);

这个时候我们想要控制台弹出的是图片的宽度,但实际控制台弹出的是0,原因是因为图片加载的问题.script标签写在body的最底层能保证img标签加载完,却保证不了资源文件是不是加载完.所以会出现这种情况

再看下面一段代码:

<div id="container">
    <!--<img src="css系列/imgs/旋转木马的图片/2.jpg" id="img">-->
</div>

<script>
    var oContainer = document.getElementById("container");
    var oImg = new Image();
    oImg.src = "img/1.jpg";
    oImg.onload = function(){
        oContainer.appendChild(oImg);
        alert(oImg.offsetWidth);

    };
</script>

图片不直接写在div,而是通过预加载加载进来.

重点onload.将图片加载完成后,再输出宽度.这就是图片的预处理

IE6下测试发现有问题,new Image有兼容性问题,所以解决兼容性的方法如下

var oContainer = document.getElementById("container");
var oImg = new Image();
oImg.onload = function(){
    oContainer.appendChild(oImg);
    alert(oImg.offsetWidth);

};
oImg.src = "img/1.jpg";

oImg.src放到onload的下面

图片预加载

原文:http://www.cnblogs.com/yuqing-o605/p/6501950.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!