js scroll 判断 横向滚动还是 纵向滚动_浏览器的一些“滚动”行为鉴赏
时间: 2024-03-11 09:46:58 浏览: 209
要判断浏览器中是横向滚动还是纵向滚动,可以通过以下方法:
1. 监听滚动事件,并获取滚动距离的变化值。
2. 判断滚动距离在 X 轴和 Y 轴上的变化值的绝对值大小,若 X 轴的变化值大于 Y 轴的变化值,则说明是横向滚动;反之则为纵向滚动。
以下是一个示例代码:
```javascript
let lastScrollTop = 0;
let lastScrollLeft = 0;
window.addEventListener('scroll', () => {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
const scrollDeltaY = Math.abs(scrollTop - lastScrollTop);
const scrollDeltaX = Math.abs(scrollLeft - lastScrollLeft);
if (scrollDeltaX > scrollDeltaY) {
console.log('横向滚动');
} else {
console.log('纵向滚动');
}
lastScrollTop = scrollTop;
lastScrollLeft = scrollLeft;
});
```
在该示例代码中,我们监听了 `scroll` 事件,并在事件处理函数中获取了当前的滚动距离,并计算出了在 X 轴和 Y 轴上的变化值。通过比较这两个值的大小,我们可以判断出当前是横向滚动还是纵向滚动。
阅读全文