js监听键盘+鼠标组合操作

  近期做一款甘特图的组件,想要实现 Ctrl + 滚轮  放大缩小甘特图时间最小刻度的功能,刚开始以为会有组合监听的办法,后来发现行不通,键盘和鼠标监听的方式不同。下面大致说一下实现方式。

1、按键监听:js无法做到同时监听,所以我们将监听按键的按下 、弹起状态,并保存。onkeydown  按下,将变量 ctrlDown  设置为 true,onkeyup  时设置为false,这里我监听的是Ctrl, 同理,如果想监听多按键,比如  Ctrl + Shift , 就设置2个变量,皆为true代表按下了。

2、鼠标监听: 我这里监听的是滚轮,当然左右击、双击、移入移出都是一样的做法,只需要对指定dom做事件监听即可,注意页面注销时,removeEventListener 解绑事件。在鼠标事件监听里面,判断键盘监听变量的值,true 代表正在按压状态。注意阻止浏览器的默认事件。

 

这样就实现了组合操作的监听,希望对你有帮助。ps:测试数据有些烂,见谅



js监听键盘+鼠标组合操作_第1张图片

 

你可能感兴趣的:(js监听键盘+鼠标组合操作)