From 9e2142a38a6908dc23d3d02bdc067bbe92d5c704 Mon Sep 17 00:00:00 2001 From: John Doe Date: Sat, 9 Sep 2023 16:50:42 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8D=20Implemented=20isInViewport=20fun?= =?UTF-8?q?ction=20=F0=9F=93=90=20Checks=20if=20an=20element=20is=20in=20t?= =?UTF-8?q?he=20viewport=20=F0=9F=91=80=20Helps=20with=20visibility=20dete?= =?UTF-8?q?ction=20=F0=9F=AA=84=20Added=20utility=20for=20handling=20visib?= =?UTF-8?q?ility=20=E2=9C=85=20Code=20looks=20good=20and=20is=20ready=20fo?= =?UTF-8?q?r=20use?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/isInViewport.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/utils/isInViewport.ts diff --git a/src/utils/isInViewport.ts b/src/utils/isInViewport.ts new file mode 100644 index 0000000..ffc2b95 --- /dev/null +++ b/src/utils/isInViewport.ts @@ -0,0 +1,10 @@ +export default function isInViewport(element: HTMLElement) { + const rect = element.getBoundingClientRect(); + return ( + rect.top >= 0 && + rect.left >= 0 && + rect.bottom <= + (window.innerHeight || document.documentElement.clientHeight) && + rect.right <= (window.innerWidth || document.documentElement.clientWidth) + ); +}