Facebook 有两种方式显示某人的时间线:从最顶部开始,显示完整的横幅,以及半滚动,因此横幅被切成两半,个人资料图片非常接近 float 导航。
不过,半滚动状态显得很自然,没有任何延迟。内容加载时页面不会突然跳转。
这个功能一般是如何实现的?简单的 window.scroll
似乎不会削减它,因为它太慢(必须等待内容加载才能真正滚动),并且会妨碍用户体验。
最佳答案
您在问题中假设页面的初始加载。这个假设是错误的,因为可以说,“页面”已经加载。
当您访问一个 Facebook 页面,然后导航到某人的时间线时,这并不是浏览器中的整个页面刷新,而是从一个页面切换到另一个页面。相反,这一切都是通过 ajax 完成的。 “上一个”页面并没有被浏览器真正卸载,“下一个”页面是通过ajax加载的。
至于 url 更改,那是另一个主题(历史推送状态)。
关于javascript - Facebook 如何无延迟地滚动到时间线横幅中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443368/