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常用功能的写法
Jun 05 HTML / CSS
CSS Grid布局教程之网格单元格布局
Dec 30 HTML / CSS
CSS3圆角和渐变2种常用功能详解
Jan 06 HTML / CSS
html Table 表头固定的实现
Jan 22 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
Jan 09 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
Apr 25 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
html5使用canvas画一条线
Dec 15 HTML / CSS
浅谈html5 响应式布局
Dec 24 HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 HTML / CSS
h5网页水印SDK的实现代码示例
Feb 19 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 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实现异步调用方法研究与分享
2011/10/27 PHP
php获取淘宝分类id示例
2014/01/16 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Python实现的单向循环链表功能示例
2017/11/10 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
Python高级用法总结
2018/05/26 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
python 下划线的不同用法
2020/10/24 Python
Python爬取某平台短视频的方法
2021/02/08 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
电大毕业个人生自我鉴定
2014/03/26 职场文书
合作协议书怎么写
2014/04/18 职场文书
活动总结格式
2014/08/30 职场文书
西安兵马俑导游词
2015/02/02 职场文书