基于Vue2.0实现屏幕可视区域图片懒加载
来源:互联网 发布:淘宝配送地在哪里修改 编辑:程序博客网 时间:2024/04/28 13:37
基于Vue2.0可视区域图片懒加载
指令代码
export default (Vue) => { var imageCatcheList = []; //初始化数据 var init = { default: 'http://test.group.batmobi.net/dist/image/transprent.png', } //是否已下载 const hasLoad = (src) => { if (imageCatcheList.indexOf(src) > -1) { return true; } else { return false; } } //图片下载处理 const imageLoad = (el, src) => { var image = new Image(); image.onload = function () { el.src = src; imageCatcheList.push(src); } image.src = src; } //是否可以展示 const isCanShow = (el, src) => { //节点离浏览器顶部的距离 var offsetTop = el.offsetTop; //页面可视区域的高度 var windowHeight = window.innerHeight; var scroll = windowHeight + window.scrollY; var offsetHeigth = el.offsetHeight; if (scroll > offsetTop && (window.scrollY - offsetTop) < offsetHeigth) { //查询图片是否已加载过,是则直接加载,否则先load if (hasLoad(src)) { el.src = src; } else { imageLoad(el, src); } } } const addListener = (el, bind) => { var imageSrc = bind.value; //赋值默认值 el.src = init.default; isCanShow(el, imageSrc); window.addEventListener('scroll', function (event) { isCanShow(el, imageSrc, event); }); } Vue.directive('lazy', { inserted: addListener, updated : addListener, })}
使用方法
在main.js中注册指令
Vue.use(imgLazyload);
在*.vue组件中加载指令
<img v-lazy="img-url">
阅读全文
1 0
- 基于Vue2.0实现屏幕可视区域图片懒加载
- 按照可视区域加载图片
- js图片懒加载(可视区域加载)
- Vue2.0实现懒加载
- js 可视区域加载
- ListView 请求(加载)可视区域Item的图片
- js和jquery懒加载之可视区域加载
- JavaScript和jQuery懒加载之可视区域加载
- 屏幕区域截取图片的实现
- 基于Vue2实现的上拉加载之移动端
- 基于javascript实现图片懒加载
- vue2组件实现懒加载浅析
- 动态菜单(永远在屏幕的可视区域显示)
- 获取屏幕可视区域的宽度和高度
- js获取屏幕可视区域宽高兼容写法
- vue2路由异步加载(懒加载)的实现
- 基于Vue2.x开发的音乐播放器app(推荐界面+懒加载+axios获取后端接口实现)
- 滚动条滚动到可视区域加载数据
- 剑指offer--顺时针打印矩阵
- 剑指offer:二叉树中和为某一值的路径
- hdu5920(字符串模拟)
- WebSocket安卓客户端实现详解(二)--客户端发送请求
- MOOC 中国大学 python爬取股票信息
- 基于Vue2.0实现屏幕可视区域图片懒加载
- hibernate与Mybatis的差别
- Linux用户和用户组
- Spring知识点总结
- hdu1712 ACboy needs your help(分组背包板子)
- UVA.11806 Cheerleaders (组合数学 容斥原理 二进制枚举)
- [RK3288][Android6.0] 无线网络术语(SoftMAC,FullMAC,cfg80211,mac80211)
- Laravel
- EtherCAT寻址方式