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 calc()会计算属性详解
Feb 27 HTML / CSS
使用css3制作动感导航条示例
Jan 26 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
CSS3区域模块region相关编写示例
Aug 28 HTML / CSS
css3实现可拖动的魔方3d效果
May 07 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
Jul 19 HTML / CSS
HTML5中5个简单实用的API
Apr 28 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
Dec 16 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
Nov 01 HTML / CSS
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
Jul 16 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php curl基本操作详解
2013/07/23 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
vue ssr 指南详读
2018/06/29 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
自主招生自荐信
2013/12/08 职场文书
创先争优活动个人总结
2015/03/04 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL