मुझे यह पता लगाने की आवश्यकता है कि विंडो में विशेष समन्वय खाली है या किसी डोम तत्व द्वारा कब्जा कर लिया गया है, अगर यह खाली है तो मुझे इसमें डोम तत्व को गतिशील रूप से जोड़ने की आवश्यकता है।

for(var i=0;i<100;i++)
  {
    for(var j=0;j<100;j=j+10)
      {
        var  elem = document.elementFromPoint(i, j);
        console.log(elem.id);
      }
  }
<div id="navenn" style="height:100px;background-color:red">
  

उपरोक्त कोड विंडो के निर्देशांक के माध्यम से पुनरावृत्त होगा, यदि किसी तत्व द्वारा किसी स्थिति पर कब्जा कर लिया गया है, तो elem.id खाली नहीं होना चाहिए, लेकिन मेरे मामले में यह हमेशा खाली रहता है

ElementFromPoint में x और y पैरामीटर क्या है, क्या यह पिक्सेल का प्रतिनिधित्व करता है?

1
naveen 16 सितंबर 2019, 18:42

1 उत्तर

सबसे बढ़िया उत्तर

जब तक आप विंडो में कॉर्ड खोज रहे हैं, elementFromPoint() एक एलीमेंट लौटाएगा। आपको यह देखने के लिए जांचना चाहिए कि क्या यह एक ऐसा तत्व है जिसे आपने डाला है या केवल दस्तावेज़ <html> तत्व है।

किसी विशेष वर्ग के लिए जाँच का एक उदाहरण नीचे दिया गया है:

for (var x = 0; x < 100; x++) {
  for (var y = 0; y < 100; y = y + 10) {
    var elem = document.elementFromPoint(x, y);
    var isItem = elem.classList.contains('item');

    console.log(`x: ${x}, y: ${y} -  ${isItem ? 'found ' : 'NOT found'}`);
  }
}
<div id="navenn" class="item" style="height:100px;background-color:red">

यहां एक उदाहरण दिया गया है जिसमें y निर्देशांक १०० के पार जा रहा है (आपके लाल रंग की ऊंचाई <div>):

for (var x = 0; x < 100; x++) {
  for (var y = 0; y < 200; y = y + 10) {
    var elem = document.elementFromPoint(x, y);
    var isItem = elem.classList.contains('item');

    console.log(`x: ${x}, y: ${y} -  ${isItem ? 'found ' : 'NOT found'}`);
  }
}
<div id="navenn" class="item" style="height:100px;background-color:red">
1
Tom Faltesek 16 सितंबर 2019, 16:52