Jquery 检测文本区域何时滚动到底部

Jquery 检测文本区域何时滚动到底部,jquery,css,Jquery,Css,有没有办法测量用户何时滚动到元素的底部?我知道jQuery可以访问元素的scrollTop(),但即使结合元素的高度,我也无法计算元素何时被滚动到最底部的位置。当在文本区域内滚动时,我希望这样做。一旦到达文本区域的“滚动底部”,我可以防止文档主体滚动 以下是您需要的: $('textarea#mytextarea')。在('scroll',function()上{ var offset=200;//文本区域的高度 如果(this.scrollHeight这是我的解决方案(): 此逻辑的可能副本

有没有办法测量用户何时滚动到元素的底部?我知道jQuery可以访问元素的
scrollTop()
,但即使结合元素的高度,我也无法计算元素何时被滚动到最底部的位置。当在文本区域内滚动时,我希望这样做。一旦到达文本区域的“滚动底部”,我可以防止文档主体滚动


以下是您需要的:

$('textarea#mytextarea')。在('scroll',function()上{
var offset=200;//文本区域的高度
如果(this.scrollHeight这是我的解决方案():


此逻辑的可能副本可用于满足您的需要:@ChristianTernus这似乎适用于窗口,但我如何将其应用于textarea?谢谢@Vizkos,但我如何将其应用于
textarea
?我没有看到反对票,我无法理解为什么有人会这样做。这非常有效,谢谢!我如何实现是不是这样,当控制台显示消息时,文档将停止滚动?是否要在结束时禁用整个页面/文档的滚动?我想我不明白你的问题。请让我知道更多详细信息。是的,我认为这是最好的方法。但是,当光标离开文本时,请重新启用它ea,这样可以重新启用滚动。这有意义吗?你为什么要禁用滚动?在我看来,这听起来不太友好。你应该让用户决定他是否想要滚动。你的想法背后有什么计划?如果用户在文本区域中滚动上千行,当他或她到达底部时,不要使页面突然向下滚动到底部。只有当鼠标位于非文本区域的元素上时才允许这样做。
$(this)[0]
是否等同于
this
?此解决方案的存储箱不工作,警报不会触发。
$('textarea#mytextarea').on('scroll', function() {
    var offset = 200; // height of textarea

    if (this.scrollHeight <= (this.scrollTop+offset)) {
        console.log('end of textarea!');
    }
});
$('textarea#mytextarea').on('scroll', function() {
    var offset = 200; // height of textarea

    if (this.scrollHeight <= (this.scrollTop+offset)) {
        // hide the overflow (=> disable scrolling) when the end is reached
        $('body').css('overflow', 'hidden');
    }
});

// re-enable scrolling on mouseout
$('textarea#mytextarea').on('mouseout', function() {
    $('body').css('overflow', 'scroll');
});
$('textarea').scroll(function() {
  if ($(this).scrollTop() + $(this).height() >= $(this)[0].scrollHeight - 4) {
    alert("You scrolled to the bottom!");
  }
});