JavaScript 触摸事件更新力或半径

标签 javascript events touch dom-events

JavaScript 触摸事件包含半径和力的属性。不幸的是,当任一属性发生更改时,似乎都不会生成事件。仅当触摸开始、移动或结束等事件时才会触发事件。谁能想出一种方法来获得有关触摸尺寸变化的更多更新吗?

目前,要获取半径更新,我必须摆动手指才能触发触摸移动事件,但我更喜欢软件解决方案。

最佳答案

我遇到了同样的问题,然后发现了这篇博文:http://blog.framerjs.com/posts/prototyping-3D-touch-interactions.html

简而言之,我们需要使用touchstart event 来捕获触摸事件,将事件分配给变量,然后使用 setInterval获取 force值:

var el = document.getElementById('myElement');
var currTouch = null;
var currTouchInterval = null;

attachListeners = function () {
    el.addEventListener('touchstart', enterForceTouch, false);
    el.addEventListener('touchend', exitForceTouch, false);
}

enterForceTouch = function (evt) {
    evt.preventDefault();
    currTouch = evt;
    currTouchInterval = setInterval(updateForceTouch, 10); // 100 times per second.
}

updateForceTouch = function() {
    if (currTouch) {
        console.log(currTouch.touches[0].force); // Log our current force value.
    }
}

exitForceTouch = function (evt) {
    evt.preventDefault();
    currTouch = null;
    clearInterval(currTouchInterval);
}

attachListeners(); 

关于JavaScript 触摸事件更新力或半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32709587/

相关文章:

javascript - 如何在gwt中处理浏览器事件?

jquery - 使 3d 翻译元素可点击

Android:通过手指触摸屏幕来测量/检测覆盖区域(不仅是触摸坐标)

ios - touchesBegan(:) not working on tableview/scrollview

java - Libgdx 获取缩放的触摸位置

javascript - 指数值的 JSON 解析为何以及如何在 Javascript 中给出数字?

javascript - GetElementByID 在 IE 中失败,在 Chrome 和 FF 中有效

javascript - 从 AJAX 调用获取 JSON 对象

events - stopPropagation 和 live() 方法。我缺少什么?

events - Eventbus 事件顺序