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的flexbox实现水平垂直居中与三列等高布局
Sep 12 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
CSS3的resize属性使用初探
Sep 27 HTML / CSS
CSS3 box-sizing属性详解
Nov 15 HTML / CSS
HTML5离线缓存Manifest是什么
Mar 09 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
Nov 16 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
Jul 17 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
Apr 02 HTML / CSS
html5+svg学习指南之SVG基础知识
Dec 17 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
html原生table实现合并单元格以及合并表头的示例代码
May 07 HTML / CSS
HTML中link标签属性的具体用法
May 07 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
header导出Excel应用示例
2014/01/24 PHP
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python实现简单神经网络算法
2018/03/10 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
优秀驾驶员先进事迹材料
2014/05/04 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
幼儿教师辞职信
2015/02/27 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python