【问题标题】:Load new Ajax content above current div without scrolling在当前 div 上方加载新的 Ajax 内容而不滚动
【发布时间】:2014-05-11 23:32:18
【问题描述】:

我不确定我是否可以在这里发布没有代码的问题。无论如何,如果它太宽泛或不合适,我很乐意删除。我目前正在实施拉动刷新和永无止境的滚动,这两者现在都很受欢迎,显然是因为它们的可用性。

这些功能也有一些反对者。我刚刚阅读了article,关于从设计师的角度来看,下拉刷新应该如何在几年内过时,因为一切都会自动刷新,而谁想要手动刷新东西。此外,永无止境的滚动,您可能会失去位置或无法加载新内容并且必须刷新......

我希望所有新帖子都自动进入,并将它们附加到我的列表顶部,但如果你想象 twitter 之类的东西使用它,你永远不会真正阅读推文。它们刷新得如此之快,您尝试阅读的所有内容都会被掩埋。

有没有人真的已经决定用even go想做的样子更像了?抱歉,我的意思是,有没有人看到它实现了新内容/帖子自动加载到最新帖子上方但我在页面上的位置保持不变?我想看看它是怎么做的。谢谢。

【问题讨论】:

    标签: javascript jquery html css ajax


    【解决方案1】:

    不,我不记得有哪个网站有与您描述的完全一样的系统。但我做了一个小函数,应该可以很好地模仿你想要实现的目标。

    Here's a demo您可以在其中实时查看代码。

    代码的工作原理

    1)。定义跟踪当前偏移到文档顶部的变量,如下所示:

    var curr_y = $(window).scrollTop();
    

    2)。每次用户滚动时,将当前偏移量的值更新到文档顶部:

    $(window).scroll(function () {
        curr_y = $(window).scrollTop();
    });
    

    3)。使用您的函数获取数据,然后使用此代码添加到容器中,然后将页面滚动到它之前添加之前的位置:

    cont = $('<div>your-content');
    $("#container").prepend(cont);
    $(window).scrollTop(curr_y + cont.outerHeight(true));
    

    【讨论】:

    • 这绝对是我问题的答案。如果我也可以问,这是个好主意吗?许多网站只有“点击显示新内容”,但这仍然是手动的。
    • @dcclassics 好吧,我个人希望它像 StackOverflow 一样(出现一个小栏,上面写着:X new questions has been posted)然后你可以点击它和所有新的显示内容。但这就是我,我敢肯定这种方法和您想要的方法各有利弊。
    • @dcclassics 我不是用户体验专家,所以也许你会在这个网站上得到一些关于用户体验部分的更好的提示:ux.stackexchange.com。祝你好运和最良好的祝愿! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多