javascript - 在 div 向下滚动时加载结果

标签 javascript jquery html css object

我需要实现类似于页面向下滚动加载更多结果的 face book 类型的实现。 外层和内层的样式

  .Outer{
      height: 1430px;
      margin-top: -12px;
      overflow: hidden;
      width: 99%;
    }
    .inner {
      height: 1435px;
      overflow-y: scroll;
      position: relative;
      width: 103%;
    }

为此,我有两个内部和外部 div,并为内部 div 附加了内联 onscroll 函数。我能够在内部 div 内滚动记录,而滚动条在第一次加载页面时有 10 条记录。因此,当我向下滚动到第 7 条记录时,我需要让服务器调用将另外 10 个结果附加到内部 div。

在第 7 条记录处找到滚动位置并触发服务器操作的最佳方法是什么?

既然网站是响应式的,Onscroll 在所有设备上都能正常工作吗?或者还有其他更好的方法来满足要求吗?

最佳答案

我遇到了类似的问题。

我现在使用以下(但我只支持 Chrome):

var handleScroll = function(event) {

        var container = event.target;
        if ((container.scrollTop + container.offsetHeight) 
             + 1 >= container.scrollHeight) { 
             ...
        }
}

您基本上不关心第 7 条记录,只关心您的用户正在滚动到底部。

您可以做的一些额外的事情:

  • 为从服务器拉取时添加一点动画 img(如旋转的圆圈)。为此,我根据滚动方向在记录的顶部或底部添加了一个额外的 div。当服务器调用完成/出错时将其删除。
  • 需要注意的是过多的 onscroll 调用,如果发生这种情况,您可能会收到过多的服务器调用。您可以使用计时器进行节流/反跳:

    document.getElementById('myid').onscroll = function(oEvent) {
        if (this.timer) {
            clearTimeout(this.timer);
        }
    
        this.timer = setTimeout(function() {
            this.handleScroll(oEvent);
        }.bind(this), 250);
    }.bind(this);
    

关于javascript - 在 div 向下滚动时加载结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881848/

相关文章:

jquery - 使用 jQuery 为 DIV 设置动画

html - 关于Hover Div问题和垂直居中文本

javascript - 读取javascript文件并执行代码

javascript - 禁用 Javascript 时的 SEO 重定向

javascript 方法链接和 this 对象

使用 AJAX 时 JavaScript 打印失败

javascript - 如果我在同步 ajax 调用之后进行异步 ajax 调用,会发生什么情况?

jQuery FlexSlider 和轮播缩略图导航

javascript - 为什么即使使用 'on' 也不会触发此点击功能?

javascript - 删除 Tumblr 控制栏中的文本