Javascript 在不向下移动内容的情况下预写div?使用iScroll
我有一个容器div,其中有一堆可滚动的内容(对于我正在使用iScroll的记录,如果这改变了解决方案的话)。当我滚动到顶部时,我想在当前滚动位置上方加载内容。如果我只是使用jQuery“prepend();”在div前面加上前缀,那么可滚动区域中的内容就会向下移动。理想情况下,我们希望将当前内容保留在框架中,并使可滚动区域向上扩展到内容上方 有什么想法吗 谢谢 根据,它有一个名为Javascript 在不向下移动内容的情况下预写div?使用iScroll,javascript,jquery,lazy-loading,iscroll4,iscroll,Javascript,Jquery,Lazy Loading,Iscroll4,Iscroll,我有一个容器div,其中有一堆可滚动的内容(对于我正在使用iScroll的记录,如果这改变了解决方案的话)。当我滚动到顶部时,我想在当前滚动位置上方加载内容。如果我只是使用jQuery“prepend();”在div前面加上前缀,那么可滚动区域中的内容就会向下移动。理想情况下,我们希望将当前内容保留在框架中,并使可滚动区域向上扩展到内容上方 有什么想法吗 谢谢 根据,它有一个名为scrollToElement的方法: 滚动元素(el,运行时):滚动到滚动区域内的任何元素el必须是CSS3选择器。
scrollToElement
的方法:
滚动元素(el,运行时)
:滚动到滚动区域内的任何元素<代码>el必须是CSS3选择器。例如:scrollToElement(“#elementID”,“400ms”)
如果您总是预先准备一个固定数量的div
s(例如总是一个div
),我想您可以在预先准备好新内容后立即使用它滚动到(例如)第二个元素:
// ... (prepend new content)
myScroll.scrollToElement('#scroller :nth-child(2)', '0ms');
我还没有尝试过,所以请告诉我们这是否适合您。在快速浏览了iScroll的源代码后,我发现:
- 当前的
和x
始终可以通过y
和myScroll.x
获得myScroll.y
- iScroll有一个内部函数
,它返回任何给定元素的\u offset(el)
和左
偏移量顶
var x = myScroll.x;
var y = myScroll.y;
// ... (prepend new content)
y += $('#scroller :first-child').outerHeight();
myScroll.scrollTo(x, y, '0ms');
您可能需要将true
传递给,这使得它包含边距再一次,我还没有测试过这个,所以请让我们知道它是否有效。谢谢您的回复!这种方法最终给了我们一个(非常快的)延迟时间,然后我们返回到原来的滚动位置,并看到用户可能没有与使用的元素完全对齐,我们还看到滚动位置的微小移动。