Привет!
Хочу вычислить координаты блока
div
.
Пишу такой код:
<div id="sliderRangeHor">
<div id="progress"></div>
<div id="indicator"></div>
</div>
</div>
var progress = document.getElementById('progress');
var indicator = document.getElementById('indicator');
progress.addEventListener('touchstart', function(evt){
progressStart(event);
},false);
progress.addEventListener('touchmove', function(evt){
progressMove(event);
},false);
progress.onclick = function(evt) {
var x = evt.offsetX==undefined?evt.layerX:evt.offsetX;
var y = evt.offsetY==undefined?evt.layerY:evt.offsetY;
alert(x +'x'+ y);
};
var startingX;
function progressStart(evt) {
startingX = evt.touches[0].clientX;
var x = evt.offsetX==undefined?evt.layerX:evt.offsetX;
var y = evt.offsetY==undefined?evt.layerY:evt.offsetY;
console.log(x + ' touchstart');
console.log(y + ' touchstart');
};
function progressMove(evt) {
var touch = evt.touches[0].clientX;
var x = evt.offsetX==undefined?evt.layerX:evt.offsetX;
var y = evt.offsetY==undefined?evt.layerY:evt.offsetY;
console.log(x + ' touchmove');
console.log(y + ' touchmove');
};
Ссылка на codepan
Событие
onclick
возвращает alert с координатами, а события
touch..
возвращают
undefined
. В чем может быть причина? Подозреваю что в области видимости, но не пойму как это обойти.