x-load是用于控制图片加载的ES6插件,主要功能为:提前加载、延迟加载、控制加载顺序和进度控制。
演示

通过network查看图片加载顺序
起步通过npm安装
npm install x-load --save 通过import引入x-load,通过new操作符创建一个新的xLoad对象。
// javascript
import xLoad from 'x-load'
new xLoad() 创建一个id="xl-load"制作loading效果,为正文的包裹层增加id="xl-wrapper"(可配置:其他HTMLElement)。
标签摒弃传统src属性,使用data-src传入图片链接。
具有prior属性的图片会在loading效果关闭前加载完成,不具有prior属性的会在loading效果结束后,默认按顺序加载(可配置:同时加载)。
<!-- html -->
自定义配置事例:
new xLoad({
wrapper: document.getElementById('自定义'),
loader: document.getElementById('自定义'),
attr: '自定义', // 可代替data-src属性
prior: '自定义', // 可代替prior属性
async: 'true or false' // loading结束后是否按序加载剩余图片
}).then(() => {
// 当具有prior属性的图片加载全部完成时触发此函数
}) 参数表
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| wrapper | HTMLElement | document.getElementById('xl-wrapper') | 控制正文的包裹层增,使其在文档加载时隐藏,在具有prior属性的图片加载完成后自动显示。 |
| loader | HTMLElement | document.getElementById('xl-load') | 控制loading元素,使其在文档加载时显示,在具有prior属性的图片加载完成后自动隐藏,同时触发.then() |
| attr | string | 'data-src' |
代替src,如果与其他插件参数冲突可以修改此项。 |
| prior | string | 'prior' |
在loding效果时要加载的图片,如果与其他插件参数冲突可以修改此项。 |
| async | boolean | 'true' | 控制loading结束后图片加载的方式,默认为按序加载,false可以设置为同时加载。 |
| loadImg | string | null | 此项填图片路径,用于未加载的图片背景图片,如果用webpack打包注意,请使用require()导入图片,否则使用base64可能会导致图片不会打包。 |
API
then()
在创建的xLoad对象,通过.then(fn())方法,传入函数,可以在具有prior属性的图片加载完成后触发。
percentLoad() 此项用于显示当前加载百分比
在创建的xLoad对象,通过.percentLoad(fn(percent))方法,传入函数,每一张具有prior属性的图片加载完成时触发,函数传递一个参数percent获取当前图片加载的进度,此值为0-1的小数。
github:https://github.com/codexu/x-load
源码下载:https://github.com/codexu/x-load/blob/master/src/utils/x-load.js
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1595/viewspace-2801457/ ,如需转载,请注明出处,否则将追究法律责任。