【问题标题】:JavaScript touch event updates for force or radius力或半径的 JavaScript 触摸事件更新
【发布时间】:2015-09-22 06:11:50
【问题描述】:

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

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

【问题讨论】:

    标签: javascript events touch dom-events


    【解决方案1】:

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

    简单来说,我们需要使用touchstart事件来捕获触摸事件,将事件赋值给一个变量,然后使用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(); 
    

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多