2018 के लिए उत्तर :
चीजों को करने का सबसे अच्छा तरीका इंटर्सेशन ऑब्जर्वर एपीआई का उपयोग करना है ।
इंटरसेक्शन ऑब्जर्वर एपीआई एक लक्ष्य तत्व के चौराहे में पूर्वजों तत्व के साथ या शीर्ष-स्तरीय दस्तावेज़ के व्यूपोर्ट के साथ अतुल्यकालिक रूप से निरीक्षण करने का एक तरीका प्रदान करता है।
ऐतिहासिक रूप से, एक तत्व की दृश्यता का पता लगाना, या एक दूसरे के संबंध में दो तत्वों की सापेक्ष दृश्यता, एक मुश्किल काम है, जिसके लिए समाधान अविश्वसनीय हो गया है और ब्राउज़र को पैदा करने का खतरा है और उपयोगकर्ता सुस्त हो रहे हैं। दुर्भाग्य से, जैसा कि वेब परिपक्व हो गया है, इस तरह की जानकारी की आवश्यकता बढ़ी है। कई कारणों से अंतरंग जानकारी की आवश्यकता होती है, जैसे:
- एक पृष्ठ के रूप में छवियों या अन्य सामग्री का आलसी-लोडिंग स्क्रॉल किया जाता है।
- "अनंत स्क्रॉलिंग" वेब साइटों को लागू करना, जहां आप स्क्रॉल करते हुए अधिक से अधिक सामग्री लोड और प्रदान करते हैं, ताकि उपयोगकर्ता को पृष्ठों के माध्यम से फ्लिप न करना पड़े।
- विज्ञापन राजस्व की गणना करने के लिए विज्ञापनों की दृश्यता की रिपोर्ट करना।
- उपयोगकर्ता कार्य का परिणाम देखेगा या नहीं इसके आधार पर कार्यों या एनीमेशन प्रक्रियाओं को करने या न करने का निर्णय लेना।
पिछले शामिल घटना संचालकों में प्रतिच्छेदन का पता लगाने को लागू करने और प्रत्येक तत्व प्रभावित के लिए आवश्यक जानकारी का निर्माण करने के लिए Element.getBoundingClientRect () जैसी कॉलिंग विधियों का उपयोग करता है। चूंकि यह सब कोड मुख्य धागे पर चलता है, इसलिए इनमें से एक भी प्रदर्शन की समस्या पैदा कर सकता है। जब कोई साइट इन परीक्षणों से भरी होती है, तो चीजें एकदम बदसूरत हो सकती हैं।
निम्नलिखित कोड उदाहरण देखें:
var options = {
root: document.querySelector('#scrollArea'),
rootMargin: '0px',
threshold: 1.0
}
var observer = new IntersectionObserver(callback, options);
var target = document.querySelector('#listItem');
observer.observe(target);
अधिकांश आधुनिक ब्राउज़र IntersectionObserver का समर्थन करते हैं , लेकिन आपको पिछड़े-संगतता के लिए पॉलीफ़िल का उपयोग करना चाहिए ।
element
औरdocument.body
सिर्फ उदाहरण थे)। देखें howtocreate.co.uk/tutorials/javascript/browserwindow जानकारी के लिए।