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 Media Queries中媒体属性的使用
Feb 29 HTML / CSS
CSS3 清除浮动的方法示例
Jun 01 HTML / CSS
深入浅析CSS3中的Flex布局整理
Apr 27 HTML / CSS
详解css3中dispaly的Grid布局与Flex布局
Sep 11 HTML / CSS
CSS3实现时间轴特效
Nov 02 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
Feb 26 HTML / CSS
基于HTML5 audio元素播放声音jQuery小插件
May 11 HTML / CSS
基于第一个PhoneGap(cordova)的应用详解
May 03 HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
Jul 04 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
Jun 25 HTML / CSS
html5手机键盘弹出收起的处理
Jan 20 HTML / CSS
HTML中的表单Form实现居中效果
May 25 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php 文件缓存函数
2011/10/08 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python生成特定分布数的实例
2019/12/05 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
先进德育工作者事迹材料
2014/01/24 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python