JavaScript 实现跨浏览器鼠标滚轮事件处理
作者:微光时间:2026-10-23 14:03:57浏览:451
本文介绍如何在JavaScript中统一处理不同浏览器的鼠标滚轮事件。通过封装wheelEvent类,兼容Firefox的DOMMouseScroll与IE的onmousewheel,并标准化delta值计算,实现跨浏览器的平滑滚动控制。
JavaScript 实现跨浏览器鼠标滚轮事件处理
从网络资源中获取响应滚轮的函数,并将其改写为如下所示的类结构。
具体实现代码如下:
function wheelEvent(obj, handle)
{
this.handle = handle;
// 区分Firefox与IE的不同事件类型
window.addEventListener ? obj.addEventListener("DOMMouseScroll", this.wheel, false) : (obj.onmousewheel = this.wheel);
}
wheelEvent.prototype.wheel = function (event)
{
var ev = event || window.event;
var delta = ev.wheelDelta ? (ev.wheelDelta / 120) : (- ev.detail / 3); // Firefox使用`wheelDelta`,IE使用`detail`
eval ('delta ? ' + parent.handle + '(delta) : null;');
} 使用时需定义一个执行函数,该函数根据从上述类中获取的值进行相应操作,并为指定的网页元素添加事件监听。例如:
具体调用代码如下:
function handle(delta)
{
document.getElementById('text').scrollTop -= delta * 20;
}
new wheelEvent(document.getElementById('text'), 'handle');在上述示例中,第一个参数是添加滚轮事件的网页元素,即id为text的div;第二个参数是执行函数的名字handle。
其中handle函数必须有且只有一个参数delta,滚轮往上滚时delta大于0,往下则小于0。上例handle函数的作用是用滚轮对div实现滚动条的功能
作者最新文章
JavaScript零基础入门:从环境搭建到运行第一段代码
2026-11-05 15:29:58
HTML链接中javascript:void(0)的作用及现代替代方案
2026-11-05 10:07:47
在线调试 JS 时怎么引入 jQuery 或 Vue 等第三方库
2026-11-05 08:53:56
原生JavaScript实现简易颜色选择器原理与代码
2026-11-03 23:22:19
JS原生表单序列化:FormData与URLSearchParams用法详解
2026-11-03 23:13:21
