HTML5 图片预加载的示例代码


Posted in HTML / CSS onMarch 25, 2020

在HTML5中,我们可以使用drawImage方法在canvas上进行画图操作,其基本代码如下:

var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var image = new Image();
image.src = "images/01.jpg";
context.drawImage(image, 0, 0);

不过我们会发现这样写是无法显示出图片的,因为图片并没有加载完全,我们就调用了drawImage方法,我们可以使用img的onload方法,使图片加载完全后

在执行drawImage操作,代码如下

var image = new Image();
image.src = "images/01.jpg";
image.onload = function() {
    context.drawImage(image, 0, 0);
}

或者使用<img>标签先加载图片

<img src="images/01.jpg" style="display: none" id="image">

然后使用getElementById来获得图片对象

var image = document.getElementById('image');

但是在图片较多的情况下,使用上面两种方式都不是太优雅,我们可以使用下面的方法,等待所有图片加载完全后,再执行其他操作

document.addEventListener("DOMContentLoaded", loadImages, true);

var images = new Array(3), imageNums = 0;

function loadImages() {
    for (var i = 0; i < images.length; i++) {
        images[i] = new Image();
        images[i].addEventListener("load", trackProcess, true);
        images[i].src = "images/01.jpg";
    }
}

function trackProcess() {
    imageNums++;
    if (imageNums = images.length) {
        drawImages();
    }
}

function drawImages() {
    var canvas = document.getElementById("canvas");
    var context = canvas.getContext("2d");
    for (var i = 0; i < images.length; i++) {
        context.drawImage(images[i], 200 * i, 0);
    }
}

参考文章: Preloading Images

到此这篇关于HTML5 图片预加载的示例代码的文章就介绍到这了,更多相关HTML5 图片预加载内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3 Columns分列式布局方法简介
May 03 HTML / CSS
CSS3中的display:grid,网格布局介绍
Oct 30 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
Dec 13 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
Jan 30 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
Mar 24 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
Jul 26 HTML / CSS
有关HTML5页面在iPhoneX适配问题
Nov 13 HTML / CSS
Html5之title吸顶功能
Jun 04 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 HTML / CSS
Html5+CSS3+EL表达式问题小结
Dec 19 HTML / CSS
带你了解CSS基础知识,样式
Jul 21 HTML / CSS
CSS中float高度塌陷问题的四种解决方案
Apr 18 HTML / CSS
html2canvas截图空白问题的解决
Mar 24 #HTML / CSS
html5视频常用API接口的实战示例
Mar 20 #HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 #HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
Mar 18 #HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 #HTML / CSS
canvas实现手机的手势解锁的步骤详细
Mar 16 #HTML / CSS
HTML利用九宫格原理进行网页布局
Mar 13 #HTML / CSS
You might like
加速XP搜索功能堪比vista
2007/03/22 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
javascript打开word文档的方法
2014/04/16 Javascript
PHP PDO操作总结
2014/11/17 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python守护线程用法实例
2017/06/23 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
DNA基因检测和分析:23andMe
2019/05/01 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
中国央视网签名寄语
2014/01/18 职场文书
大学社团活动策划书
2014/01/26 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
工程技术员岗位职责
2014/03/02 职场文书
年终工作总结范文2014
2014/11/27 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
python - asyncio异步编程
2021/04/06 Python
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
spring boot中nativeQuery的用法
2021/07/26 Java/Android
JVM之方法返回地址详解
2022/02/28 Java/Android