JackShcherbakov
@JackShcherbakov

Почему закрашивается не тот элемент?

Есть код, который генерирует огромный div с высотой 10к пикселей. Я пытаюсь получить его по координатам через document.elementFrom(x, y); И происходит что-то очень странное:
Почему без искусственной задержки закрашивается не div, а HTML?
<body id="body">
<div id="div" style="background-color:red; height: 10000px"></div>
  <script>
//setTimeout(()=>{
   var element = document.elementFromPoint(500, 500);
  console.log(element);
  element.style.backgroundColor = "yellow";
//}, 1000)  
  </script>
</body>

Но с задержкой закрашивается именно DIV!
<body id="body">
<div id="div" style="background-color:red; height: 10000px"></div>
  <script>
setTimeout(()=>{
   var element = document.elementFromPoint(500, 500);
  console.log(element);
  element.style.backgroundColor = "yellow";
}, 1000)  
  </script>


</body>

Заранее благодарю за ответы.
Вот код в песочнице - https://codepen.io/CitizenOne/pen/YYxmRK
Дополняю:
Кстати! В песочнице в первом случае (без задержки) почему-то вылетает ошибка! Вообще непонятно
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
tema_sun
@tema_sun
А вы в курсе, что document.elementFrom(x, y)
Возвращает элемент, который находится на координатах (x, y) относительно окна.

В песочнице ошибка именно поэтому возникает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы