Я заметил, что когда я пытаюсь перетащить какой-то элемент в мобильный хром, событие touchmove разрастается после некоторого разрыва от touchstart. я написал сценарий, чтобы узнать этот пробел в пикселях:Мертвая зона на событии touchmove в хроме
` мертвую зону
<script type="text/javascript">
window.addEventListener('load', function() {
var box = document.getElementById("box");
var status = document.getElementById("status");
var startPoint = 0;
var moveStart = false;
box.addEventListener('touchstart', function(e) {
startPoint = parseInt(e.changedTouches[0].clientX);
e.preventDefault();
});
box.addEventListener('touchmove', function(e) {
if(moveStart) return;
moveStart = true;
status.innerHTML = "deadZone: " + (e.changedTouches[0].clientX - startPoint) + "px";
e.preventDefault();
});
box.addEventListener('touchend', function(e) {
e.preventDefault();
moveStart = false;
});
});
</script>
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
`
И мои результаты: 14-30px на правое/левое перетаскивание и 2-10px вверх/вниз. Кажется, что коробка была привязана к smthg в начале ее перемещения. Как я могу избежать этого и начать отслеживать touchmove с реальной точки начала?
Протестировано на Sony Xperia C и Sony Ericsson Live с Walkman – Neka
И в родных приложениях, таких как плейер-плейер, нет перекосов в перетаскивании – Neka
Я воспроизвел его здесь: http://jsbin.com/touchdeadzone/1/quiet - поговорит с командой англичан. – Kinlan