You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何让JavaScript鼠标激活功能仅响应左键按下操作?

解决方案:仅让鼠标左键触发激活状态

没问题,这个需求很好实现~当前你的mousedown事件会响应所有鼠标按键(左键、右键、中键),核心原因是没有对触发事件的按键类型做过滤。我们可以利用事件对象的button属性来精准筛选——鼠标左键对应的button值是0

你只需要在事件触发时增加一个按键判断逻辑即可,下面是修改后的完整代码:

var timeoutID; 

function setup() { 
  // 绑定事件时添加按键判断
  document.getElementById("demo").addEventListener("mousedown", function(event) {
    // 仅当左键按下时执行resetTimer
    if (event.button === 0) {
      resetTimer();
    }
  }); 
  startTimer(); 
} 

setup(); 

function startTimer() { 
  timeoutID = window.setTimeout(goInactive, 1000); 
} 

function resetTimer() { 
  window.clearTimeout(timeoutID); 
  goActive(); 
} 

function goInactive() { 
  document.getElementById("demo").style.opacity = 0; 
  document.getElementById("demo").style.transition = "1s"; 
} 

function goActive() { 
  document.getElementById("demo").style.opacity = 1; 
  document.getElementById("demo").style.transition = "1s"; 
  startTimer(); 
} 

补充个小说明:

  • event.button的取值对应不同按键:0 = 左键,1 = 中键(滚轮键),2 = 右键
  • 我们在事件回调里加了条件判断,只有当event.button === 0时才触发激活逻辑,这样就完美实现仅响应左键的需求啦。

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

火山引擎 最新活动