shiftKey 是事件对象的只读布尔属性,用于判断事件触发瞬间是否按住 Shift 键;在 click 等原生事件中直接访问 event.shiftKey 即可,移动端因无物理 Shift 键通常为 false。

直接在事件处理函数中检查 event.shiftKey 属性即可判断用户点击时是否按住了 Shift 键。
shiftKey 是什么
shiftKey 是鼠标或键盘事件对象(如 click、mousedown、keydown)上的一个只读布尔属性。只要用户在触发该事件的瞬间按住 Shift 键,它的值就是 true;否则为 false。它不区分左/右 Shift 键,也不依赖其他修饰键(如 Ctrl 或 Alt)。
在 click 事件中使用 shiftKey
这是最常见场景:用户点击按钮、链接或任意可交互元素时,你想根据是否按住 Shift 执行不同逻辑。
- 给目标元素绑定
click事件监听器 - 在回调函数中访问
event.shiftKey - 用 if 判断并执行对应操作
示例代码:
document.getElementById('myButton').addEventListener('click', function(e) {
if (e.shiftKey) {
console.log('Shift + 点击:执行高级操作');
} else {
console.log('普通点击:执行默认操作');
}
});
注意兼容性和行为细节
shiftKey 在所有现代浏览器中都支持,包括移动端 Safari 和 Chrome。但需注意:
- 移动端设备通常没有物理 Shift 键,所以
shiftKey几乎总是 false(除非通过外接键盘触发) - 该属性反映的是事件触发「那一刻」的按键状态,不是整个交互过程——比如按住 Shift 再移动鼠标再点击,依然有效;但若点击后才按 Shift,则无效
- 它只对原生事件有效(如
click、contextmenu、mousedown),自定义事件需手动添加该属性
扩展:同时检测多个修饰键
如果还需响应 Ctrl、Alt 或 Meta(Cmd)组合,可一并检查:
-
e.ctrlKey:Ctrl(Windows/Linux)或 Cmd(macOS) -
e.altKey:Alt 键 -
e.metaKey:Meta 键(macOS 的 Command,Windows 的 Win 键)
例如实现「Shift+Ctrl+点击」:
if (e.shiftKey && e.ctrlKey) {
console.log('执行快捷批量操作');
}

















