要确保鼠标滚轮/滚轮事件在可滚动div中的每个滚动中只触发一次,可以通过以下步骤实现:
以下是一个示例代码,演示如何确保鼠标滚轮/滚轮事件在可滚动div中的每个滚动中只触发一次:
// 获取可滚动div元素
var scrollableDiv = document.getElementById('scrollableDiv');
// 定义标志变量
var lastScrollTop = 0;
var lastScrollDirection = '';
// 监听滚轮事件
scrollableDiv.addEventListener('wheel', function(event) {
// 防止事件冒泡
event.stopPropagation();
// 判断滚动方向
var scrollDirection = event.deltaY > 0 ? 'down' : 'up';
// 判断滚动位置
var isAtTop = scrollableDiv.scrollTop === 0;
var isAtBottom = scrollableDiv.scrollTop + scrollableDiv.clientHeight === scrollableDiv.scrollHeight;
// 触发滚动事件
if ((scrollDirection !== lastScrollDirection || scrollableDiv.scrollTop !== lastScrollTop) && !(isAtTop && scrollDirection === 'up') && !(isAtBottom && scrollDirection === 'down')) {
// 执行滚动事件的操作
console.log('滚动事件触发');
// 更新标志变量
lastScrollTop = scrollableDiv.scrollTop;
lastScrollDirection = scrollDirection;
}
});
这是一个基本的实现方法,可以根据具体需求进行调整和优化。在实际开发中,可以根据项目需要选择合适的框架或库来处理滚动事件,例如使用jQuery的scroll方法或使用React的Scroll组件等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云