You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让获取Canvas点击坐标的函数仅响应右键点击?

让鼠标坐标获取函数仅响应右键点击的实现方案

没问题,要让你的函数只响应右键点击其实很容易,我们只需要利用鼠标事件对象的button属性来做判断,再加上一点小处理阻止浏览器默认的右键菜单就可以了。

修改后的完整代码

canvas.addEventListener("mousedown", getPosition, false);

function getPosition(event) {
    // 判断是否为右键点击(标准DOM中右键对应的button值是2)
    if (event.button === 2) {
        // 阻止浏览器默认的右键菜单弹出
        event.preventDefault();
        
        var x = event.x;
        var y = event.y;
        var canvas = document.getElementById("canvas");
        x -= canvas.offsetLeft;
        y -= canvas.offsetTop;
        alert("x:" + x + " y:" + y);
    }
}

关键改动说明

  • 右键判断逻辑:通过event.button === 2来筛选右键点击,这里的数值对应关系是:
    • 0:左键点击
    • 1:中键(滚轮)点击
    • 2:右键点击
  • 阻止默认行为:添加event.preventDefault()是为了避免浏览器弹出默认的右键菜单,让我们的自定义逻辑成为右键点击的唯一响应行为,提升用户体验。

这样修改后,你的函数就只会在用户右键点击canvas时触发坐标获取和弹窗提示啦。

内容的提问来源于stack exchange,提问作者user9686018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:58:35