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 相关文章推荐
收集的7个CSS3代码生成工具
Apr 17 HTML / CSS
css3 box-sizing属性使用参考指南
Jan 08 HTML / CSS
CSS3属性box-sizing使用指南
Dec 09 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
CSS中垂直居中的简单实现方法
Jul 06 HTML / CSS
详解CSS中iconfont的使用
Aug 04 HTML / CSS
css3学习系列之移动属性详解
Jul 04 HTML / CSS
html5构建触屏网站之网站尺寸探讨
Jan 07 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
Jan 31 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
a标签下载链接的简单实现
Sep 13 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
php5数字型字符串加解密代码
2008/04/24 PHP
PHP 变量的定义方法
2010/01/26 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
python和C语言混合编程实例
2014/06/04 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
护士辞职信范文
2014/01/19 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
2015年家长学校工作总结
2015/04/22 职场文书