1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| /**
| * 全局被动事件监听器封装
| * @param {Element} element 目标元素
| * @param {string} eventType 事件类型(如 'wheel'、'mousewheel')
| * @param {Function} handler 事件处理函数
| */
| export default function addPassiveEventListener(element, eventType, handler) {
| // 检测浏览器是否支持 passive 选项
| let supportsPassive = false;
| try {
| const opts = Object.defineProperty({}, 'passive', {
| get() {
| supportsPassive = true;
| }
| });
| window.addEventListener('test', null, opts);
| } catch (e) {}
|
| // 添加事件监听器,强制使用 passive: true
| element.addEventListener(
| eventType,
| handler,
| supportsPassive ? { passive: true } : false
| );
| }
|
|