首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕捉Mac触控板缩放

捕捉Mac触控板缩放
EN

Stack Overflow用户
提问于 2013-03-15 02:02:17
回答 5查看 9.8K关注 0票数 25

目前在我的应用程序中,我正在捕捉鼠标滚轮事件,并在画布元素上执行放大或缩小操作。如果用户使用Mac并尝试使用触摸板执行缩放,则不会发生任何事件,实际发生的是放大/缩小浏览器。

有没有办法捕捉使用触控板执行的缩放事件?

EN

回答 5

Stack Overflow用户

发布于 2015-02-24 06:49:38

至少在Chrome中,触摸板“按压缩放”会触发一个滚轮/鼠标滚轮事件,就像按下了ctrl键一样。您可以像捕获任何其他轮子/鼠标轮事件一样捕获此事件,并防止其默认事件发生。下面是一个使用jQuery的示例:

代码语言:javascript
复制
$("canvas").on("mousewheel", function(e) {
    if (e.ctrlKey) {
        e.preventDefault();
        e.stopImmediatePropagation();

        // perform desired zoom action here
    }
});
票数 26
EN

Stack Overflow用户

发布于 2016-05-12 18:17:13

您可以从 Starting from Safari 9.1 devices捕获缩放和旋转事件。有关更多信息,请阅读GestureEvent Class Reference。请注意,这只适用于Safari,但由于您的问题是关于"Mac触控板缩放“,我认为这就是您正在寻找的。

代码语言:javascript
复制
function zoom(e) {
  console.log(e.scale)
  e.preventDefault()
}
document.addEventListener('gesturestart', zoom)
document.addEventListener('gesturechange', zoom)
document.addEventListener('gestureend', zoom)

附注:在iOS上的Safari中也支持这些事件。

票数 9
EN

Stack Overflow用户

发布于 2014-11-08 00:59:31

据我所知,触控板的收缩不会触发触摸或手势事件,因此Hammer.js不会检测到它。

我可以使用Hamster.js在Chrome中模拟夹点检测。它将触发鼠标滚轮事件,您可以使用增量来确定用户是放大还是缩小。

不过,这个解决方案在Safari中不起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15416851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档