You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在水平滚动时输出jQuery中内层容器的scrollLeft值?

解决滚动时获取内层容器scrollLeft的问题

你现在的代码监听的是window的滚动事件,但实际产生水平滚动的是包裹.content的外层容器(也就是那个设置了overflow-x: auto的父元素),所以自然拿不到正确的scrollLeft值啦。

正确的实现方式

首先要找到那个实际发生滚动的容器(通常是包裹.content、设置了overflow-x: auto/scroll的父元素),然后监听它的scroll事件,再获取它的scrollLeft值:

$(function(){
  // 替换成你实际的滚动容器选择器,比如包裹.content的元素
  $('.scroll-container').scroll(function(){
    console.log($(this).scrollLeft());
  });
});

如果你的.content本身就是滚动容器(比如它自身设置了宽度限制和overflow-x: auto),也可以直接监听它的滚动事件:

$(function(){
  $('.content').scroll(function(){
    console.log($(this).scrollLeft());
  });
});

为什么原代码无效?

window的scroll事件对应的是整个页面的滚动行为,而你的水平滚动是发生在页面内部的独立容器上,两者的滚动状态是完全分开的。所以只有监听那个具体滚动容器的事件,才能获取到它的水平滚动偏移量。

内容的提问来源于stack exchange,提问作者ttmt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:58:43