द्वारा एचटीएमएल तत्वों की तुलना करें एक ही दस्तावेज़ में दो अनियंत्रित HTML तत्व ए और बी को देखते हुए, मैं कैसे पता लगा सकता हूं कि उपयोगकर्ता के लिए कौन सा "नज़दीकी" है (यानी यदि वे ओवरलैप करते हैं, तो कौन सा दूसरे को अस्पष्ट कर रहा है)?वास्तविक जेड-इंडेक्स
W3C CSS Specification संदर्भों को ढेर करने का वर्णन करता है, जो अनुरूप प्रतिपादन इंजन को लागू करना चाहिए। हालांकि, मुझे जावास्क्रिप्ट प्रोग्राम, क्रॉस-ब्राउजर या नहीं में इस जानकारी तक पहुंचने का कोई तरीका नहीं मिला। मैं पढ़ सकता हूं कि सीएसएस z-index
संपत्ति है, जो प्रति से अधिक नहीं कहती है, क्योंकि अधिकांश समय auto
पर सेट किया गया है या यहां तक कि जब संख्यात्मक मान के रूप में व्यक्त किया गया है, यह वास्तव में प्रदर्शित होने के तरीके के विश्वसनीय संकेतक नहीं है (यदि वे अलग-अलग स्टेटकिंग संदर्भों से संबंधित हैं, जेड-इंडेक्स की तुलना करना अप्रासंगिक है)।
कृपया ध्यान दें कि मुझे मनमानी तत्वों में रुचि है: यदि दोनों तत्व माउस पॉइंटर से नीचे हैं, तो केवल एक को "आच्छादित" माना जाएगा, इसलिए मैं आसानी से इस मामले में सबसे नज़दीकी से ढूंढ सकता हूं। हालांकि, मैं एक और सामान्य समाधान की तलाश में हूं, अधिमानतः एक जिसमें स्टैकिंग एल्गोरिदम को दोबारा लागू करने में शामिल नहीं है कि प्रतिपादन इंजन पहले से ही प्रदर्शन कर रहा है।
अद्यतन: मुझे थोड़ी इस सवाल के पीछे कारण स्पष्ट करते हैं: मैं हाल ही में a question कि jQuery के खींचें और ड्रॉप तंत्र में एक सीमा से अवगत कराया घेरने की कोशिश की है - यह ध्यान में z-अनुक्रमित नहीं ले करता है जब छोड़ने, तो एक अगर तत्व दूसरे को अस्पष्ट कर रहा है, यह अभी भी "पीछे" तत्व में ड्रॉप ऑपरेशन कर सकता है। जबकि ओपी विशेष मामले के लिए जुड़े प्रश्न का उत्तर दिया गया था, सामान्य समस्या बनी रहती है, और मुझे कोई आसान समाधान नहीं है।
नीचे alex's answer उपयोगी है, लेकिन नहीं हाथ में मामले के लिए पर्याप्त है: जब खींच, घसीटा तत्व में ही (या अधिक सटीक इसकी सहायक) माउस कर्सर के तहत सर्वोच्च तत्व है, इसलिए elementFromPoint
वापस आ जाएगी यह बजाय अगला सबसे ऊपर तत्व, हमें वास्तव में आवश्यकता है (वर्कअराउंड:style the cursor इसलिए इसे सहायक के बाहर रखा गया है)। JQuery की अन्य चौराहे की रणनीतियों को भी एक बिंदु से अधिक ध्यान में रखना है, जो किसी भी तरह से सहायक को छेड़छाड़ करने वाले शीर्ष तत्व को निर्धारित करने के कार्य को जटिल बनाते हैं। वास्तविक जेड-इंडेक्स द्वारा तत्वों की तुलना करने (या क्रमबद्ध) करने में सक्षम होने से सामान्य मामले के लिए एक "जेड-इंडेक्स अवगत" चौराहे मोड व्यवहार्य हो जाएगा।
मेरे पास समय होने पर आपके कोड का अधिक सावधानी से परीक्षण होगा, लेकिन पहली नज़र में यह ठीक लगता है। मैं अभी आपके उत्तर को स्वीकार कर रहा हूं, क्योंकि यह अब तक का सबसे पूरा काम है। – mgibsonbr