Img图片预加载

本文介绍了三种图片预加载的方法,包括直接使用img标签、常见但有限制的第一种和第二种方式,以及一种适用于本地和网络图片的高效预加载方法。通过这些方法,可以确保无论图片来源如何,都能正确获取图片属性,提升页面加载速度。
摘要由CSDN通过智能技术生成

按照惯例,img图片预加载 平时我们都会使用
第一种方法:
直接使用

var img = new Image(); //创建一个Image对象,实现图片的预下载
img.onload =function(){
     .........
}
img.url = '图片路径';

if(img.complete){ // 如果图片已经存在于浏览器缓存,直接调用回调函数
   img.onload();
}


这种写法在如果是本地图片是有效的,网络图片则无法正确获取到<img>的属性

第二种方法:
也是网上不常说的方法

function loadImage(url, callback) {
    var img = new Image(); //创建一个Image对象,实现图片的预下载
    img.src = url;
    if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
        callback.call(img);
        return; // 直接返回,不用再处理onload事件
    }
    img.onload = function () { //图片下载完毕时异步调用callback函数。
        callback.call(img);//将回调函数的this替换为Image对象
    };
}

调用:
loadImage('图片路径',function(e){
     alert(e.width+"===&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值