Отследить координаты клика мыши внутри div'a

188
17 ноября 2018, 12:40

Имеется div размером 400х400рх, находится он в отступe от верхнего края 100рх.

   <div style="width: 400px; height: 400px; margin-top: 100px" id="box">
   </div>

Далее, хочу написать слежку за координатами нажатия мыши конкретно внутри div'a. Сделал следующее:

  <script>
  box.onclick = function() {
  alert (event.pageX+':'+event.pageY);
  }            
  </script>

Координаты отслеживает, выводит, но счёт начинается не с левого верхнего угла div'a, а именно с угла страницы, как исправить?

Answer 1

Надо отнять от координаты мышки с начала страницы координаты элемента.

Конечно, есть специальное свойство offsetX и offsetY, но они не кроссбраузерные.

box.onclick = function() { 
  console.log((event.pageX - box.offsetLeft) + ':' + (event.pageY - box.offsetTop)); 
}
#box { 
  margin: 100px; 
  background-color: red; 
  width: 400px; 
  height: 400px; 
}
<div id="box"></div>

READ ALSO
Как реализовать такой слайдер? (фото в приложении)

Как реализовать такой слайдер? (фото в приложении)

При верстке лендинга столкнулась с таким слайдеромКонкретно интересует, как реализовать перемещение левого и правого слайда в центр? Ранее...

241
Получение координаты Y от начало объекта до конца или слайдер громкости для видео плеера

Получение координаты Y от начало объекта до конца или слайдер громкости для видео плеера

ЗдравствуйтеВозникла одна маленькая проблема в создание слайдера громкости для видео плеера

259
Bootstrap 4: зачем нужен метод $(&#39;.alert&#39;).alert()

Bootstrap 4: зачем нужен метод $('.alert').alert()

Приведённый пример (скопирован 1 в 1 из документации) состоит из одного лишь только HTML-кодаAlert прекрасно закрывается без единой строчки самостоятельно...

232
Margin в % внутри flex-элемента

Margin в % внутри flex-элемента

Почему, когда элементу, который находится внутри flex-элемента, ставишь margin в % сам flex-элемент не расширяется, а если ставить margin в px, то flex-элемент...

218