Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   event pageY и pageX для мобильных устройств (https://javascript.ru/forum/misc/76786-event-pagey-i-pagex-dlya-mobilnykh-ustrojjstv.html)

arkadii_parovozov 13.02.2019 09:52

event pageY и pageX для мобильных устройств
 
Здравствуйте друзья!

Не получается определить координаты элемента на экране мобильного устройства. Пытаюсь определить таким образом:

$("#block").bind('mousedown touchstart mousemove touchmove mouseup touchend', function (event) {				
	event.preventDefault();
	
	if(event.type === 'mousedown' || event.type === 'touchstart'){
		
		koordinatStart = event.pageY;
		$("#echo_koordinat").html(koordinatStart);
		
	}
});


Пишет: undefined

Что я делаю не так?

рони 13.02.2019 10:09

arkadii_parovozov,
$("#block").on('mousedown touchstart mousemove touchmove mouseup touchend', function (event) {
	event.preventDefault();
	if(event.type === 'touchstart'){
        var e = event.originalEvent,
        koordinatStart = e.touches[0].pageY;
		$("#echo_koordinat").html(koordinatStart);

	}
});

Nexus 13.02.2019 10:11

У touch-событий структура, насколько я помню, другая.
В событие передается коллекция касаний, а уже у каждого касания есть свои координаты.

Почитайте:
https://developer.mozilla.org/en-US/.../Touch/clientX

j0hnik 13.02.2019 10:12

из за того что касание может быть не одним а несколькими пальцами используется вот такое свойство TouchEvent.touches // список всех точек соприкосновения пальцев с экраном.

arkadii_parovozov 13.02.2019 11:09

Спасибо всем большое!

Хотел сделать перемещение блока по экрану (для ПК мышью, а для моб. пальцем). Видимо не получится совместить.

Nexus 13.02.2019 11:11

Цитата:

Сообщение от arkadii_parovozov
Видимо не получится совместить.

Почему?
Определите тип события и исходя из этих данных получите нужные вам координаты.

arkadii_parovozov 13.02.2019 12:36

Nexus, спасибо, действительно получилось )

vasily1299 24.02.2021 19:15

столкнулся с аналогичной задачей
Цитата:

Сообщение от arkadii_parovozov
спасибо, действительно получилось )

arkadii_parovozov, столкнулся с аналогичной задачей. Если не трудно, напишите как решили.


Часовой пояс GMT +3, время: 06:17.