javascript - 如何使用 Javascript 检测浏览器窗口何时横向滚动

标签 javascript jquery scroll

如何使用 Javascript/Jquery 在浏览器窗口中测试横向/水平滚动,然后在检测到移动时执行操作?

最佳答案

您可以绑定(bind)到窗口scroll事件并使用最后一个scrollLeft位置来确定它是否已更改。

var lastPosition = 0,
    doc = $(document),
    win = $(window);

win.scroll(function() {
  var scrollPosition = doc.scrollLeft();
  
  if(lastPosition != scrollPosition) {
    lastPosition = scrollPosition;
    console.log('scroll left changed!');
  }
});
.container {
  border: 1px solid #000;
  height: 50px;
  width: 10000px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
 hello
<div>

普通 JS

var lastPosition = 0;

window.addEventListener('scroll', function(){
  var scrollPosition = this.pageXOffset;

  if(lastPosition != scrollPosition) {
    lastPosition = scrollPosition;
    console.log('scroll left changed!');
  }
});

关于javascript - 如何使用 Javascript 检测浏览器窗口何时横向滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51848751/

相关文章:

jquery - 添加div后图像不断向下移动

javascript - 水平鼠标滚轮滚动与 Map JQuery 冲突

javascript - 如何在 Javascript 事件处理程序中延迟向 DOM 添加元素

javascript - 在 'static' 周围 float div

javascript - marquee 属性向左向右滚动文本

javascript - 在php中执行echo命令

javascript - 如何阻止页面滚动移动网站?

javascript - 该功能在点击两次而不是一次后才起作用

javascript - 在网页上,我可以劫持垂直滚动 Action 并使其水平吗?

JQuery 缓动拖动和滚动