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.0 图形构成实例练习一
Mar 19 HTML / CSS
CSS3属性box-sizing使用指南
Dec 09 HTML / CSS
HTML5混合开发二维码扫描以及调用本地摄像头
Dec 27 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
HTML5 Canvas概述
Aug 26 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
Mar 29 HTML / CSS
使用canvas绘制超炫时钟
Dec 17 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
Jan 27 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
Aug 19 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP会话处理的10个函数
2015/08/11 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
python多重继承实例
2014/10/11 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python字典排序的方法
2019/10/12 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
如何清空python的变量
2020/07/05 Python
篮球赛口号
2014/06/18 职场文书
人代会标语
2014/06/30 职场文书
会计专业自荐书
2014/07/08 职场文书
工程索赔意向书
2014/08/30 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
租车协议书范本2014
2014/11/17 职场文书
mysql全面解析json/数组
2022/07/07 MySQL