हालांकि निम्नलिखित वास्तव में सवाल का जवाब नहीं दे सकता है, क्योंकि यह googling का पहला परिणाम है (googler वास्तव में एक ही सवाल नहीं पूछ सकता है :), उम्मीद है कि यह कुछ अतिरिक्त इनपुट प्रदान करेगा।
माउस को वर्तमान में समाप्त होने वाले सभी तत्वों की सूची प्राप्त करने के लिए वास्तव में दो अलग-अलग दृष्टिकोण हैं (नए ब्राउज़रों के लिए, शायद):
"संरचनात्मक" दृष्टिकोण - आरोही डोम वृक्ष
जैसे कि धीमान के उत्तर में, कोई भी कॉल कर सकता है
var elements = document.querySelectorAll(':hover');
हालांकि, यह मानता है कि केवल बच्चे अपने पूर्वजों को ओवरले करेंगे, जो आमतौर पर मामला है, लेकिन सामान्य रूप से सच नहीं है, खासकर जब एसवीजी से निपटना होता है जहां डोम पेड़ की विभिन्न शाखाओं में तत्व एक दूसरे को ओवरलैप कर सकते हैं।
"दृश्य" दृष्टिकोण - "दृश्य" ओवरलैपिंग पर आधारित है
यह विधि document.elementFromPoint(x, y)
सबसे ऊपरी तत्व को खोजने के लिए उपयोग करती है, अस्थायी रूप से इसे छिपाती है (चूंकि हम इसे एक ही संदर्भ में तुरंत पुनर्प्राप्त करते हैं, ब्राउज़र वास्तव में इसे प्रस्तुत नहीं करेगा), फिर दूसरे शीर्षतम तत्व को खोजने के लिए जाएं ... थोड़ा हैकी लगता है, लेकिन जब आप वहाँ होते हैं, तो आप जो उम्मीद करते हैं, वह वापस आ जाता है, जैसे, एक पेड़ में भाई-बहन तत्वों का एक-दूसरे से मिलना। कृपया अधिक जानकारी के लिए यह पोस्ट देखें,
function allElementsFromPoint(x, y) {
var element, elements = [];
var old_visibility = [];
while (true) {
element = document.elementFromPoint(x, y);
if (!element || element === document.documentElement) {
break;
}
elements.push(element);
old_visibility.push(element.style.visibility);
element.style.visibility = 'hidden'; // Temporarily hide the element (without changing the layout)
}
for (var k = 0; k < elements.length; k++) {
elements[k].style.visibility = old_visibility[k];
}
elements.reverse();
return elements;
}
दोनों का प्रयास करें, और उनके अलग-अलग रिटर्न की जांच करें।