当前位置:首页 > jquery

jquery滚轮事件

2026-02-04 00:51:12jquery

jQuery 滚轮事件监听

jQuery本身没有直接提供滚轮事件监听方法,但可以通过原生JavaScript的wheel事件或第三方插件实现。

原生JavaScript的wheel事件

通过jQuery绑定原生wheel事件,兼容现代浏览器:

$(element).on('wheel', function(event) {
    // 阻止默认行为(如页面滚动)
    event.preventDefault();

    // 获取滚动方向
    const delta = event.originalEvent.deltaY;
    if (delta > 0) {
        console.log('向下滚动');
    } else if (delta < 0) {
        console.log('向上滚动');
    }
});

使用mousewheel插件

对于老旧浏览器或需要更精细控制的情况,可引入jquery-mousewheel插件:

  1. 引入插件:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
  2. 监听事件:

    jquery滚轮事件

    $(element).on('mousewheel', function(event) {
     // 阻止默认行为
     event.preventDefault();
    
     // delta值判断方向
     if (event.deltaY > 0) {
         console.log('向下滚动');
     } else {
         console.log('向上滚动');
     }
    });

注意事项

  • 事件冒泡:滚轮事件可能触发多次,建议用event.stopPropagation()控制。
  • 性能优化:高频触发的滚轮事件建议使用节流(throttle)或防抖(debounce)。
  • 移动端兼容:移动设备需额外处理touchmove事件。

示例:节流实现

let throttleTimer;
$(window).on('wheel', function(event) {
    if (!throttleTimer) {
        throttleTimer = setTimeout(() => {
            console.log('节流处理滚动');
            throttleTimer = null;
        }, 200);
    }
    event.preventDefault();
});

标签: 滚轮事件
分享给朋友:

相关文章

vue中实现点击事件

vue中实现点击事件

在 Vue 中实现点击事件的方法 使用 v-on 指令绑定点击事件 Vue 提供了 v-on 指令用于监听 DOM 事件。可以通过 v-on:click 或简写为 @click 来绑定点击事件。 &…

react如何事件代理

react如何事件代理

React 中的事件代理 React 通过合成事件(SyntheticEvent)实现了事件代理机制。合成事件是对原生 DOM 事件的跨浏览器封装,所有事件都委托到顶层容器(通常是 document…

react如何阻止事件冒泡

react如何阻止事件冒泡

阻止事件冒泡的方法 在React中,事件冒泡可以通过调用事件对象的stopPropagation方法来实现。React的事件系统是对原生DOM事件的封装,因此原生事件的方法在React中同样适用。…

react如何事件委托

react如何事件委托

事件委托的概念 事件委托是一种利用事件冒泡机制将子元素的事件处理程序绑定到父元素上的技术。在React中,通过利用合成事件系统(SyntheticEvent)可以高效实现事件委托,减少事件监听器的数量…

js实现事件委托

js实现事件委托

事件委托的概念 事件委托是一种利用事件冒泡机制的技术,通过将事件监听器绑定到父元素而非每个子元素上,统一管理子元素的事件响应。这种方式能减少内存占用并提高性能,尤其适用于动态添加的子元素。 实现事件…

js实现点击事件

js实现点击事件

使用 addEventListener 绑定点击事件 通过 addEventListener 方法为元素绑定 click 事件,支持动态添加多个事件监听器。 const button = doc…