From 214d741ba5caf1e533873bba1b8f030e80774d72 Mon Sep 17 00:00:00 2001 From: Kushal Pandya Date: Tue, 8 Jan 2019 18:37:21 +0530 Subject: Add support for `offset` values in `isInViewport` --- app/assets/javascripts/lib/utils/common_utils.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts/lib') diff --git a/app/assets/javascripts/lib/utils/common_utils.js b/app/assets/javascripts/lib/utils/common_utils.js index 9e22cdc04e9..fc34d243dd7 100644 --- a/app/assets/javascripts/lib/utils/common_utils.js +++ b/app/assets/javascripts/lib/utils/common_utils.js @@ -118,12 +118,13 @@ export const handleLocationHash = () => { // Check if element scrolled into viewport from above or below // Courtesy http://stackoverflow.com/a/7557433/414749 -export const isInViewport = el => { +export const isInViewport = (el, offset = {}) => { const rect = el.getBoundingClientRect(); + const { top, left } = offset; return ( - rect.top >= 0 && - rect.left >= 0 && + rect.top >= (top || 0) && + rect.left >= (left || 0) && rect.bottom <= window.innerHeight && rect.right <= window.innerWidth ); -- cgit v1.2.1