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绘制超炫的上下起伏波动进度加载动画
Apr 21 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
Jul 09 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
Jan 27 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
Sep 21 HTML / CSS
HTML5单页面手势滑屏切换原理
Mar 21 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
Dec 07 HTML / CSS
Html5获取高德地图定位天气的方法
Dec 26 HTML / CSS
总结html5自定义属性有哪些
Apr 01 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 HTML / CSS
css清除浮动clearfix:after的用法详解(附完整代码)
May 21 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读取目录下所有文件的代码
2008/01/07 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
2011/10/20 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python判断字符串与大小写转换
2015/06/08 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
使用python实现链表操作
2018/01/26 Python
python2.7到3.x迁移指南
2018/02/01 Python
对python3新增的byte类型详解
2018/12/04 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
车间操作工岗位职责
2013/12/19 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
关于母亲节的感言
2014/02/04 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
食堂标语大全
2014/06/11 职场文书
给老婆的检讨书
2015/01/27 职场文书
教育教学读书笔记
2015/07/02 职场文书