isInViewport添加offset

This commit is contained in:
zhw2590582 committed 2021-09-25 19:33:21 +08:00
1 parent d73666475c
commit 2ea92640aa
4 files changed
+9 -8

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ export default function viewInit(art, events) {
} = art;
const scrollFn = throttle(() => {
art.emit('view', isInViewport($container));
art.emit('view', isInViewport($container, 50));
}, 200);
events.proxy(window, 'scroll', () => {
+3 -3
View File
@@ -65,12 +65,12 @@ export function tooltip(target, msg, pos = 'up') {
target.setAttribute('data-balloon-pos', pos);
}
export function isInViewport(el) {
export function isInViewport(el, offset = 0) {
const rect = el.getBoundingClientRect();
const windowHeight = window.innerHeight || document.documentElement.clientHeight;
const windowWidth = window.innerWidth || document.documentElement.clientWidth;
const vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;
const horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;
const vertInView = rect.top <= windowHeight + offset && rect.top + rect.height + offset >= 0;
const horInView = rect.left <= windowWidth + offset && rect.left + rect.width + offset >= 0;
return vertInView && horInView;
}