Javascript 如何在不改变滚动位置的情况下加载数据?

Javascript 如何在不改变滚动位置的情况下加载数据?,javascript,jquery,Javascript,Jquery,当我在给定数据中预加数据时,为什么滚动位置会改变。我滚动到顶部,它预先显示数据,但滚动位置转到顶部。但我在Facebook和whatsapp上看到了很多例子,在加载之前的数据时,滚动位置保持不变 我们可以保留滚动位置吗 这必须在Javascript中完成: 一种方法是使用一个隐藏div,该div的高度和宽度与您准备的div相同,并在添加内容时测量其滚动高度。然后,在预先添加文本后,只需将content div的scrollTop设置为隐藏div的scrollHeight: $(document)

当我在给定数据中预加数据时,为什么滚动位置会改变。我滚动到顶部,它预先显示数据,但滚动位置转到顶部。但我在Facebook和whatsapp上看到了很多例子,在加载之前的数据时,滚动位置保持不变

我们可以保留滚动位置吗


这必须在Javascript中完成:

一种方法是使用一个隐藏div,该div的高度和宽度与您准备的div相同,并在添加内容时测量其滚动高度。然后,在预先添加文本后,只需将content div的scrollTop设置为隐藏div的scrollHeight:

$(document).ready(function(){

    setTimeout(function(){

        $("div#hiddenDiv").html("Testing<br><br><br>");

        var coffset = document.getElementById("hiddenDiv").scrollHeight;

        $("div#content").prepend($("div#hiddenDiv").html());
        document.getElementById("content").scrollTop += coffset;

    }, 5000);

});
$(文档).ready(函数(){
setTimeout(函数(){
$(“div#hiddenDiv”).html(“测试


”; var coffset=document.getElementById(“hiddenDiv”).scrollHeight; $($div#content”).prepend($($div#hiddenDiv”).html(); document.getElementById(“内容”).scrollTop+=coffset; }, 5000); });
在下面的提琴中,文本将在几秒钟后前置到div,但滚动 立场不会改变


但它不是一个得到的答案,因为它首先进入顶部,然后向下滚动,我一定不理解你的问题。你说的是什么意思?它先到顶部,然后再向下滚动?@user2484319简单的事实是,当你在窗口前添加文本时,不管它是什么,你都会滚动回顶部。这就是prepend函数所做的。我将解释..当你使用Facebook或watapp等应用程序时的示例。当你看到消息并在滚动时转到顶部时,在不更改滚动位置的情况下加载上一条消息是的,我知道prepend默认功能,所以我问Facebook开发人员是怎么做的
$(document).ready(function(){

    setTimeout(function(){

        $("div#hiddenDiv").html("Testing<br><br><br>");

        var coffset = document.getElementById("hiddenDiv").scrollHeight;

        $("div#content").prepend($("div#hiddenDiv").html());
        document.getElementById("content").scrollTop += coffset;

    }, 5000);

});