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色彩
Jan 16 HTML / CSS
实例讲解CSS3中的box-flex弹性盒属性布局
Jun 09 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
Jul 01 HTML / CSS
深入理解css中vertical-align属性
Apr 18 HTML / CSS
HTML5 语音搜索只需一句代码
Jan 03 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
Jan 06 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 HTML / CSS
HTML5 visibilityState属性详细介绍和使用实例
May 03 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
Jun 23 HTML / CSS
HTML5 Canvas绘制五星红旗
May 04 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
Dec 29 HTML / CSS
Html5获取高德地图定位天气的方法
Dec 26 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
php中url函数介绍及使用示例
2014/02/13 PHP
PHP children()函数讲解
2019/02/03 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
Django添加feeds功能的示例
2018/08/07 Python
python实现梯度下降算法
2020/03/24 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
教你打造完美的创业计划书
2014/01/06 职场文书
关于打架的检讨书
2014/01/17 职场文书
30岁生日感言
2014/01/25 职场文书
酒鬼酒广告词
2014/03/21 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
积极向上的团队口号
2014/06/06 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
python基础之爬虫入门
2021/05/10 Python
Python实现滑雪小游戏
2021/09/25 Python
Android 中的类文件和类加载器详情
2022/06/05 Java/Android