有什么方法可以用 Javascript 检测强制点击?

Any way to detect Force Click with Javascript?

有什么方法可以检测 Javascript 的强制点击吗?我知道有一些方法可以检测常规点击和右键点击,但是强制点击呢?

监听 webkitmouseforcewillbeginwebkitmouseforcedown 事件。您可以从传递给事件处理程序的对象中的 webkitForce 属性 中获取力级别。

当然,这仅适用于支持 Force Touch 的 Mac 上的 Safari。

来源:WebKit DOM Programming Documentation

我发现了一个名为 Pressure.js 的 JS 库,它使处理 Force/3D Touch 变得更简单。它适用于 iOS 的 3D 触摸和 OSX 的强制触摸。如果你只是用它来强制触摸 Mac,你可以这样使用它:

Pressure.set('#element', {
  start: function(event){
    // this is called on force start
  },
  end: function(){
    // this is called on force end
  },
  startDeepPress: function(event){
    // this is called on "force click" / "deep press", aka once the force is greater than 0.5
  },
  endDeepPress: function(){
    // this is called when the "force click" / "deep press" end
  },
  change: function(force, event){
    // this is called every time there is a change in pressure
  },
  unsupported: function(){
    // this is called once there is a touch on the element and the device or browser does not support Force or 3D touch
  }
}, {only: 'force'});

末尾的 {only: 'force'} 选项确保仅 运行s 强制触摸 Mac 而不是 iOS。如果你想让它 运行 都简单地删除那个选项。