不兼容安卓5.1.1。
原因:发现打包后的代码中,仍然有let。
解决方法:vue.config.js添加 transpileDependencies: ['mint-ui/src/utils']
loadmore组件上拉不触发。
原因:checkBottomReached方法中,直接使用document.body.scrollTop获取滚动条高度。亲测Chromedocument.body.scrollTop为0,需使用document.documentElement.scrollTop可以获取正确的数据。
解决办法:使用getScrollTop方法获取。getScrollTop该组件中已有,猜想是组件作者这里忘记调用了。 const scrollTop = this.getScrollTop(window)
getScrollTop(element) {
if (element === window) {
return Math.max(window.pageYOffset || 0, document.documentElement.scrollTop);
} else {
return element.scrollTop;
}
},
小米 max3手机上拉依然不刷新。
原因:xiaomimax3获取到的scrollTop始终差0.1,例如2846.9091796875 (我也没找到官方说明,是自己实验出的结果)
解决办法:scrollTop 向上取整。 return Math.ceil(scrollTop) + document.documentElement.clientHeight >= document.body.scrollHeight;
checkBottomReached函数最终为
checkBottomReached() {
if (this.scrollEventTarget === window) {
const scrollTop = this.getScrollTop(window)
/* 兼容小米 max3手机底部上翻不刷新,原因是获取到的scrollTop差0.1,例如2846.9091796875 */
return Math.ceil(scrollTop) + document.documentElement.clientHeight >= document.body.scrollHeight;
} else {
return this.$el.getBoundingClientRect().bottom <= this.scrollEventTarget.getBoundingClientRect().bottom + 1;
}
}
以上只是我的一点点项目实践中的采坑记录,抛转引玉而已。