56、JavaScript 鼠标滚轮与拖放事件全解析

JavaScript 鼠标滚轮与拖放事件全解析

1. 鼠标滚轮事件概述

现代浏览器均支持鼠标滚轮,并在用户转动滚轮时触发相应事件。通常,浏览器会利用鼠标滚轮来滚动文档或缩放页面,但我们可以通过取消鼠标滚轮事件来阻止这些默认操作。不过,鼠标滚轮事件存在一些兼容性问题,但仍可编写跨平台的代码。

目前,除 Firefox 外,所有浏览器都支持名为 “mousewheel” 的事件,Firefox 则使用 “DOMMouseScroll”,而 DOM Level 3 Events 草案提议使用 “wheel” 事件替代 “mousewheel”。不同事件对象使用不同属性名来表示滚轮的旋转量。此外,鼠标滚轮在硬件上也存在差异,有些仅支持前后一维旋转,有些(特别是 Mac 上的鼠标)还支持左右旋转,甚至 DOM Level 3 标准还支持三维鼠标 “滚轮”。

2. 事件对象属性

不同浏览器和事件类型下,事件对象的属性有所不同:
| 浏览器/事件类型 | 属性 | 说明 |
| ---- | ---- | ---- |
| “mousewheel” 事件 | wheelDelta | 表示用户转动滚轮的距离,远离用户一个 “点击” 通常为 120,靠近用户为 -120 |
| Safari 和 Chrome | wheelDeltaX 和 wheelDeltaY | 支持二维轨迹球鼠标,wheelDelta 和 wheelDeltaY 值始终相同 |
| Firefox(DOMMouseScroll 事件) | detail | 需乘以 -40 来计算等效的 wheelDelta 值 |
| DOM Level

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值