您现在的位置是:网站首页> 编程资料编程资料
基于HTML代码实现图片碎片化加载功能在HTML里加载摄像头的方法html5用video标签流式加载的实现HTML5 图片预加载的示例代码传统HTML页面实现模块化加载的方法HTML页面缩小后显示滚动条的示例代码h5页面背景图很长要有滚动条滑动效果的实现HTML5实现直播间评论滚动效果的代码html+css实现滚动到元素位置显示加载动画效果
2021-08-29
1055人已围观
简介 这篇文章主要介绍了基于HTML代码实现图片碎片化加载功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
今天来实现一个图片碎片化加载效果,效果如下:
我们分为 3 个步骤来实现:
- 定义 html 结构
- 拆分图片
- 编写动画函数
定义html结构
这里只需要一个 canvas 元素就可以了。
拆分图片
这个例子中,我们将图片按照 10 行 10 列的网格,拆分成 100 个小碎片,这样就可以对每一个小碎片独立渲染了。
let image = new Image(); image.src = "https://cdn.yinhengli.com/canvas-example.jpeg"; let boxWidth, boxHeight; // 拆分成 10 行,10 列 let rows = 10, columns = 20, counter = 0; image.onload = function () { // 计算每一行,每一列的宽高 boxWidth = image.width / columns; boxHeight = image.height / rows; // 循环渲染 requestAnimationFrame(animate); };requestAnimationFrame :告诉浏览器,你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。
编写动画函数
接下来我们编写动画函数,让浏览器在每一次重绘前,随机渲染某个小碎片。
这里的核心是 context.drawImage 方法。
let canvas = document.getElementById("myCanvas"); let context = canvas.getContext("2d"); function animate() { // 随机渲染某个模块 let x = Math.floor(Math.random() * columns); let y = Math.floor(Math.random() * rows); // 核心 context.drawImage( image, x * boxWidth, // canvas 中横坐标起始位置 y * boxHeight, // canvas 中纵坐标起始位置 boxWidth, // 画图的宽度(小碎片图像的宽) boxHeight, // 画图的高度(小碎片图像的高) x * boxWidth, // 从大图的 x 坐标位置开始画图 y * boxHeight, // 从大图的 y 坐标位置开始画图 boxWidth, // 从大图的 x 位置开始,画多宽(小碎片图像的宽) boxHeight // 从大图的 y 位置开始,画多高(小碎片图像的高) ); counter++; // 如果模块渲染了 90%,就让整个图片显示出来。 if (counter > columns * rows * 0.9) { context.drawImage(image, 0, 0); } else { requestAnimationFrame(animate); } }完整代码
总结
通过这个 Demo,我们使用了 canvasAPI 实现了图片的碎片加载效果,是不是特别简单!
到此这篇关于基于HTML代码实现图片碎片化加载功能的文章就介绍到这了,更多相关html图片碎片化加载内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 详解HTML设置边框的三种方式HTML table 表格边框的实现思路html做表格只显示表格的外边框Html/CSS前端实现文字边框阴影效果有关HTML表格边框的设置小技巧html设置虚线边框的方法HTML教程:图片大小对齐间隔边框属性修改方法介绍HTML table表格边框的控制详细说明HTML表格边框的控制实现代码
- 如何让你的html button本身居中的实现浅谈浏览器的兼容模式下的button中文字垂直方向不居中显示Firefox下input button内文字不能垂直居中的解决方法用CSS让img input select button 图片,文本框,下拉菜单,按扭垂直居中的
- html中车牌号省份简称输入键盘的示例代码Html5页面上如何禁止手机虚拟键盘弹出html5手机键盘弹出收起的处理html5移动端价格输入键盘的实现可能这些是你想要的H5软键盘兼容方案(小结)HTML5 虚拟键盘出现挡住输入框的解决办法利用HTML5 Canvas制作键盘及鼠标动画的实例分享HTML5 Canvas鼠标与键盘事件demo示例
- HTML如何对齐多个表单中的文本框的实现wordpress添加Html5的表单验证required方法小结html表单控件禁用属性readonly VS disabled介绍HTML5表单验证特性(知识点小结)html中表单提交的实现HTML通过表单实现酒店筛选功能
- Table自适应以及溢出的一些设置详解HTML页面自适应宽度的table(表格)display:table-cell实现兼容性的两栏自适应布局实现代码
- HTML n种方式实现隔行变色的示例代码css3隔行变换色实现示例CSS表格样式:圆角,隔行,变色的具体实现css美化表格让其隔行变色显示CSS expression 隔行换色效果 网页设计制作CSS实现隔行换色两种方法-CSS教程-网页制作-网页教学网CSS实现网页中的隔行换色代码-CSS教程-网页制作-网页教学网CSS网页隔行换色技巧-CSS教程-网页制作-网页教学网
- HTML页面自适应宽度的table(表格)HTML5 body设置自适应全屏html5移动端自适应布局的实现HTML5 textarea高度自适应的两种方案关于html选择框创建占位符的问题
- HTML+Sass实现HambergurMenu(汉堡包式菜单)Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码html5写一个BUI折叠菜单插件的实现方法html 仿百度百科导航下拉菜单功能HTML+CSS实现下拉菜单的实现Html屏蔽右键菜单和左键划字功能的示例HTML+CSS实现简单下拉菜单效果HTML5中原生的右键菜单创建方法HTML5手机端弹出遮罩菜单特效代码基于HTML5代码实现折叠菜单附源码下载html 可输入下拉菜单的实现方法
- HTML+CSS+JS模仿win10亮度调节效果的示例代码纯html+css实现Element loading效果纯html+css实现奥运五环的示例代码HTML+CSS实现导航条下拉菜单的示例代码html+css实现滚动到元素位置显示加载动画效果纯html+css实现打字效果html+css实现环绕倒影加载特效html输入两个数实现加减乘除功能html中显示特殊符号(附带特殊字符对应表)关于html选择框创建占位符的问题html css3不拉伸图片显示效果
- HTML基本标签及结构详解入门:HTML的基本标签和属性简单介绍入门:HTML的基本标签和属性简单介绍html5组织文档结构_动力节点Java学院整理 html5页面结构_动力节点Java学院整理 HTML基本结构_动力节点Java学院整理 HTML5的文档结构和新增标签完全解析HTML5文档结构标签
