From ce2e5b121bd20df9c9683a387d28a3dab1a88b3e Mon Sep 17 00:00:00 2001 From: ray Date: Thu, 21 May 2020 17:13:46 +0100 Subject: [PATCH] add class to body when observes done --- src/js/index.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/js/index.js b/src/js/index.js index b67add8..a2b8564 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1,7 +1,19 @@ (function() { + const observeSelector = '.js-onscreen'; + const observedNodes = document.querySelectorAll(observeSelector); + let observedCount = 0; + let observedTotal = !!observeSelector ? observedNodes.length : 0; + window.addEventListener('DOMContentLoaded', event => { const intersectionSupport = !!window.IntersectionObserver; + function updateObservedCount() { + observedCount++; + if (observedCount >= observedTotal) { + document.body.classList.add('observe-done'); + } + } + function onScreenHandler(entries) { entries.forEach(entry => { if (entry.intersectionRatio > 0) { @@ -12,7 +24,7 @@ }); } - document.querySelectorAll('.js-onscreen').forEach(el => { + observedNodes.forEach(el => { if (intersectionSupport) { const options = { rootMargin: '0px', @@ -22,6 +34,7 @@ observer.observe(el); el.classList.add('is-observed'); } + updateObservedCount(); }); }); })();