vue-lazyload加载图片第二屏一直显示默认图片
最近的一个项目有用到图片懒加载,遇到一个问题困扰了我好几天,最后找到原因,顿时觉得自己好蠢
问题描述:进入页面首屏自动加载后,往上拉时并没有继续渲染图片,一直显示默认图片,给我纳闷好久
昨天在又一次探究无果的情况下本来打算另辟蹊径,投机取巧,强制刷新页面的时候发现懒加载效果在鼠标滚轮滚动的情形下是可以实现正常的懒加载的效果的,这样的话绝对是我哪里的设置有问题,后来又查了一下,在main.js引入vueLazyload时配置有问题
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload, {
preLoad: 1.5,
error: '../static/images/icon/goods-loading.png', // 加载失败默认图片
loading: '../static/images/icon/goods-loading.png', // 加载中默认图片
attempt: 1,
// listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend']
listenEvents:['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'webkitAnimationend', 'webkitTransitionend', 'touchmove']
})
上面的参数大家自行百度吧
这里着重说一下listenEvents,设置监听事件去触发懒加载,上面注释的是我最初设置的选项,结果就有了上面的问题描述,今天改成下面的内容鼠标点击滚动页面时懒加载效果就好了,根本原因就是没有监听移动端的触屏滚动(touchmove)事件