js scroll 判断 横向滚动还是 纵向滚动_浏览器的一些“滚动”行为鉴赏
时间: 2024-03-08 11:49:33 浏览: 15
要判断页面是否发生了横向滚动还是纵向滚动,可以通过监听滚动事件来实现。以下是一个简单的示例代码:
```javascript
var lastScrollTop = 0;
var lastScrollLeft = 0;
window.addEventListener("scroll", function() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
if (scrollTop > lastScrollTop) {
console.log("向下滚动");
} else if (scrollTop < lastScrollTop) {
console.log("向上滚动");
}
if (scrollLeft > lastScrollLeft) {
console.log("向右滚动");
} else if (scrollLeft < lastScrollLeft) {
console.log("向左滚动");
}
lastScrollTop = scrollTop;
lastScrollLeft = scrollLeft;
});
```
代码中,我们定义了两个变量 `lastScrollTop` 和 `lastScrollLeft` 来保存上一次页面的滚动位置。在滚动事件触发时,我们获取当前页面的滚动位置,并与上一次的位置进行比较,从而判断页面是发生了横向滚动还是纵向滚动。如果 `scrollTop` 或 `scrollLeft` 大于上一次的位置,那么就是向下或向右滚动,反之就是向上或向左滚动。最后,我们更新 `lastScrollTop` 和 `lastScrollLeft` 的值,以便下一次滚动事件的判断。