【问题标题】:trigger infinite-scroll when there's not enough content for scroll bar on page load当页面加载时滚动条内容不足时触发无限滚动
【发布时间】:2012-07-12 16:06:03
【问题描述】:

我正在使用伟大的无限滚动插件- http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/

但是在更大的屏幕分辨率上,没有足够的帖子来显示滚动条,因此永远不会触发无限滚动。想知道这些是否可以在没有大量初始帖子的情况下解决这个问题。

猜测某种 if 语句来检查浏览器高度等。但是如果它返回 true,我如何触发无限滚动。

任何想法

谢谢

【问题讨论】:

    标签: jquery infinite-scroll


    【解决方案1】:

    快速检查的一种方法是:

    // Force 'retrieve' for next page if window is taller than document
    if($(window).height() >= $(document).height()){
    $wall.infinitescroll('retrieve');
    };
    

    如果需要,您可能需要将其转换为用于多次“检索”的函数,直到窗口不高于文档。

    【讨论】:

    • 这应该被选作答案。谢谢路易吉!
    【解决方案2】:

    对于较新版本的无限滚动,设置选项

    prefill: true
    

    此解决方案是在this issue on github 上创建和讨论的。

    【讨论】:

    • 它对我不起作用。它保持不变,没有垂直滚动,也没有添加新项目。
    • 确保您使用的是最新版本的无限滚动插件。
    • 我正在使用 2.0b2.120519,仍然没有。这个问题的另一个答案是有效的。
    • 如果您没有足够的空间来填充页面,请小心进行预填充:@​​987654322@
    【解决方案3】:

    我知道问题已经过时了,但这会对你们中的许多人有所帮助。

    @Luigi 的回答很好,但是如果加载一次内容显示滚动条还不够呢?

    这应该是最好的

    var no_scrollbar_workaround = setInterval(function checkVariable() {
    
               if($(window).height() >= $(document).height()) {
                        jsonloader(); //here you put your function for more content
                } else {
                        clearInterval(no_scrollbar_workaround);
                }
    }, 1000);
    

    这将运行多次,直到需要实际显示滚动条。

    您可以使用 Ctrl + - 尽可能缩小页面来测试此功能并查看它的全部优点。

    在显示滚动条之前,您会看到新内容的调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 2019-11-26
      • 2017-01-01
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多