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

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

最佳答案

至少在Chrome中,触控板“捏到缩放”会触发滚轮/鼠标轮事件,该事件似乎就像按下ctrl键一样。您可以像捕获其他任何Wheel/Mousewheel事件一样捕获此事件,并防止其发生默认情况。这是使用jQuery的示例:

$("canvas").on("mousewheel", function(e) {
    if (e.ctrlKey) {
        e.preventDefault();
        e.stopImmediatePropagation();

        // perform desired zoom action here
    }
});

08-19 17:04