JavaScript 监听鼠标左右同时按下/同时按下移动

这篇具有很好参考价值的文章主要介绍了JavaScript 监听鼠标左右同时按下/同时按下移动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

基于原生JavaScript, 在使用three.jsraycaster模拟瞄准及射击时用到.文章来源地址https://www.toymoban.com/news/detail-725712.html


一、代码

const obj = window;

let eventList = [];
let isDouble = false;
        
obj.addEventListener("mouseup", e => { mouseUp(e) });
obj.addEventListener("mousedown", e => { mouseDown(e) });
obj.addEventListener("mousemove", e => { mouseMove(e) });

obj.addEventListener("contextmenu", e => { e.preventDefault() }); // 阻止浏览器默认右键菜单

function mouseDown(e) {
  if (e.button === 1) return; // 中键
  eventList.push(e.button); // e.button 0左键 1中键 2右键
  judge();
}

function mouseUp(e) {
  if (e.button === 1) return;
  if (eventList.length === 2) isDouble = false;
  remove(e.button);
}

function mouseMove(e) {
  if(!isDouble) return;
  if(eventList[0] === 0) {
    console.log('left-right-moving');
  } else {
    console.log('right-left-moving');
  }
}
        
function remove(val) {
  if (eventList[0] == val) {
    eventList.shift();
    return;
  }
  if (eventList[1] == val) {
    eventList.pop();
    return;
  }
}

function judge() {
  if (eventList.length === 2) {
    if (eventList[0] === 0) { // 数组全等不区分元素顺序
      console.log('left-right');
    } else {
      console.log('right-left');
    }
    isDouble = true;
  }
}

总结


到了这里,关于JavaScript 监听鼠标左右同时按下/同时按下移动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript鼠标移动事件及案例

    一、鼠标点击事件 1.onclick单击事件         鼠标单击时事件处理函数 input type=\\\"button\\\" id=\\\"bt\\\" value=\\\"点击\\\" script //找到按钮并设置点击事件    document.getElementById(\\\"bt\\\").onclick  = function (){         //被点击后弹出弹出框        alert(\\\"按钮被点击\\\")    } /script 2.ondblclick双击事件  鼠

    2023年04月08日
    浏览(27)
  • [JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

    第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 本章内容融合了第一章、第二章的部分内容,

    2024年02月15日
    浏览(35)
  • JavaScript实现鼠标移动到指定HTML元素超过3秒则调用弹框提示

    可以使用JavaScript中的’setTimeout函数和mouseover事件来实现在鼠标移动到指定HTML元素上停留3秒后调用弹框提示,重复进入不会重复响应该事件,如果在停留3秒的时间内离开了该元素,则不会再继续弹框提示。 以下是实现的详细步骤: 1、首先,在HTML中创建需要监听鼠标移动事

    2024年02月09日
    浏览(46)
  • Qt 鼠标按下移动释放事件

    QEvent::MouseButtonPress ​ 鼠标按下时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseMove ​ 鼠标移动时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseButtonRelease ​ 鼠标释放时,触发该事件,它对应的子类是 QMouseEvent 自定义一个标签控件 LabelX ,让它继承自 QLabel ,然后

    2024年01月22日
    浏览(96)
  • TextBox添加鼠标按下、失去焦点、鼠标移动等事件及重写

    TextBox添加鼠标按下、失去焦点、鼠标移动等事件及重写 方法1: 方法2:    

    2024年02月15日
    浏览(28)
  • Qt获取鼠标移动事件,窗口内任意位置按下鼠标左键拖动窗口

    重写窗口的两个事件函数mousePressEvent和mouseMoveEvent即可: 在mousePressEvent 中,按下鼠标左键时,记录窗口坐标,其中窗口坐标的计算是由鼠标事件获取到鼠标在整个屏幕中的坐标(ev-globalpos()),然后再使用pos()获取到鼠标在窗口内的相对位置,两者之差就是窗口在整个屏幕上

    2024年02月12日
    浏览(42)
  • VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件

    《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家 在实际工作中分发VBA程序,写好的

    2024年04月27日
    浏览(30)
  • 【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.4 鼠标按下、移动、释放事件

    本章要实现的整体效果如下: QEvent::MouseButtonPress ​ 鼠标按下时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseMove ​ 鼠标移动时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseButtonRelease ​ 鼠标释放时,触发该事件,它对应的子类是 QMouseEvent 本节通过两个案例来讲

    2024年02月08日
    浏览(38)
  • JavaScript:onkeydown-键盘上的键被按下时触发事件

    案例: 使用div布局以及键盘点击事件的一个实例运用,实现一个点击键盘上下左右键使div布局移动 示例: 第一步: 写两个HTML-div布局,并定义id ​ html     head         meta charset=\\\"utf-8\\\"         title/title     /head     body         div id=\\\"content\\\"             div id=\\\"mov

    2024年02月16日
    浏览(29)
  • 压枪源码,移动鼠标源码,监听鼠标源码,控制鼠标移动源码,控制鼠标移动脚本

    压枪源码,移动鼠标源码,监听鼠标源码,控制鼠标移动源码,控制鼠标移动脚本 加了很多注释了,肯定能看懂,双开火键,左键正常,侧键直接压开 先ahk官网下载安装后就能直接运行这个ahk文件了 一开始尝试python写,可以移动鼠标可以监听按键,游戏里不行,有延迟感,

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包