有没有一种方法可以在网页开头插入内容而不会导致页面给人向上滚动的印象。
我正在尝试实现类似于无限滚动的东西,但我需要能够无限向上和向下滚动(我还在另一端卸载内容,以便滚动条不会变得无限小并且应用程序不会占用太多内存)。
我很高兴使用 javascript,我宁愿不使用库(我试图保持比这更轻的重量)。
有任何想法吗?
有没有一种方法可以在网页开头插入内容而不会导致页面给人向上滚动的印象。
我正在尝试实现类似于无限滚动的东西,但我需要能够无限向上和向下滚动(我还在另一端卸载内容,以便滚动条不会变得无限小并且应用程序不会占用太多内存)。
我很高兴使用 javascript,我宁愿不使用库(我试图保持比这更轻的重量)。
有任何想法吗?
在我的情况下,布局是这样的:
<div class='container'>
<div class='list'>
product cards...
</div>
<button>Load more</button>
</div>
document.activeElement.blur()
,一切都很好。您可以window.scrollBy(x, y)
在添加内容时使用向下滚动(您必须计算所添加内容的高度)。
在执行创建元素的代码之前,只需执行以下操作:
var scrollY = window.scrollY;
window.onscroll = function(){
window.scrollTo(0, scrollY);
window.onscroll = null;
};
请记住,如果您已经有一个onscroll
功能,则需要在此之后重新分配该功能...
一种可能的想法是完全绕过滚动机制并自己做。
基本上,用 . 定位每个元素display: fixed
。然后,您可以使用负位置在屏幕上方加载元素。
您必须同步文档的高度(只需添加空格),以便文档滚动条正确。然后,捕获滚动事件并调整页面内所有元素的固定位置。
我不确定它会有多平滑,但我相当肯定你可以得到你想要的效果。