export function debounce(fn, delay) {
var timer = null;
var delay = delay || 200;
return function () {
var args = arguments;
var that = this;
clearTimeout(timer)
timer = setTimeout(function () {
fn.apply(that, args)
}, delay);
}
}
export const DropDownRefresh = (el, callback, bottomheight = 20) => {
let ele = document.querySelector(el)
function getScrollTop() {
let scrollTop = ele.scrollTop;
return scrollTop;
}
function getClientHeight() {
var clientHeight = ele.clientHeight;
return clientHeight;
}
function getScrollHeight() {
var eleHeight = ele.scrollHeight;
return eleHeight;
}
ele.onscroll = debounce(() => {
getScrollTop();
getClientHeight();
getScrollHeight();
if (getScrollTop() + getClientHeight() > getScrollHeight() - bottomheight ) {
callback()
}
}, 300)
}
调用
created() {
this.$on("hook:mounted", () => {
untils.DropDownRefresh(".content", () => {
console.log('刷新')
});
});
this.$on("hook:destroyed", () => {
document.querySelector(".content").onscroll = null;
});
}