【问题标题】:Can't get horizontal Scroll position无法获得水平滚动位置
【发布时间】:2016-03-25 22:18:13
【问题描述】:

我想获得我的 div 的水平滚动位置,但我不明白为什么这不起作用。

这里是Codepen example

HTML

<div class='demo'>dsannbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbnbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</div>

CSS

.demo {
  overflow-x: auto;
  height: 50px;
}

JS

$(document).ready(function(){
    if($(this).scrollLeft() >= 100){
         alert();   
    }
}); 

【问题讨论】:

  • $(document).ready(function(){ var div = $('.demo'); if(div.scrollLeft() >= 100){ alert(); } });使用您的 div 而不是 'this' 也许您可以将其用作参考。 stackoverflow.com/questions/344615/…
  • 是否要检查 div 上的滚动位置?
  • @alirezasafian 完全正确
  • 检查this

标签: javascript jquery


【解决方案1】:

您的代码正在做什么,当文档准备好(0)并且它永远不会改变时,它是否正在获取 scrollLeft() 的值。当.demo 事件的滚动发生变化时,您需要一个事件来捕获。像这样的:

$(document).ready(function(){
  $('.demo').on('scroll', function() {
    var val = $(this).scrollLeft()
    if (val >= 100) alert('Hello')
  })
}); 

【讨论】:

  • 没有问题,需要一些时间来适应这些事件。
  • 好的,但是如果我想让这个函数在加载时执行,我该怎么做?
猜你喜欢
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多