gookj
gookj
  • 发布:2015-06-21 22:27
  • 更新:2015-06-21 23:52
  • 阅读:1447

求pullRefresh无限往后加载的方法

分类:MUI

需求是:使用pullRefresh加载文章,一页接一页的往下看,希望能无限次数往后加载。

如果一直只加载不清除,当前页面会变得很长很长,且占用内存会越来越大,

所以需要把以前心经看过的删除掉。

比如现在已经加载了1,2两页,希望在加载第3页前,把第1页的内容清除掉。

尝试了几个方法,但效果并不好,因为清除了文章后,dom的长度变了,虽然能定位到当前位置并跳回,但效果是屏幕上的文字会切换一下。。。

现求高手指点一种流畅无缝的方法。

我现在的代码大概是这样:

//这是放所有文章的容器  
var newspage = document.getElementById("newspage");  

//监听dragend事件,当第1页已经滚出窗口外则删除它  
newspage.addEventListener("dragend", function () {  

       //P是每篇文章存放的地方,取出第1页  
    var newsitem = newspage.querySelector("p");  

    var h = newsitem.clientHeight;  
    if(document.body.scrollTop > h)  
    {  
        h = document.body.scrollTop - h;  
        newspage.removeChild(newsitem);  
        window.scrollTo(0, h);  
    }  

})  
2015-06-21 22:27 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

删除以前文章的同时,插入一个空的div。设置该div的高度为你删除文章的高度,这样可以保证整个dom高度不变,当用户手动滚动到以前的文章时,根据业务需求决定,是否恢复以前的文章节点。

  • gookj (作者)

    似乎这样也不是太好,页面会无限变长

    2015-06-21 23:53

  • DCloud_UNI_FXY

    回复 gookj:你这个需求,可以自己使用scroll控件实现一个上拉加载,然后自己实现一个文章切换动画。

    2015-06-23 21:47

gookj

gookj (作者)

另外还有个问题,document.body.scrollTop 在IOS上一直为0

  • DCloud_UNI_FXY

    ios上的下拉刷新,上拉加载是区域滚动,所以docuemtn.body.scrollTop一直为0

    mui('#pullrefresh').pullRefresh().y;

    2015-06-23 21:45

该问题目前已经被锁定, 无法添加新回复