Javascript Touch事件学习笔记5 实现一个APP框架三 向下滑动加载更多

欢欢欢欢 发表于 2014-8-3 05:04

上篇笔记(进入)讨论了向上滑动加载新内容,现在在上篇文章的基础上来新增功能,向下滑动加载更多内容。

一:为了更加接近网易新闻APP,填充一些数据。

二:加载更多触发的条件,即当整个新闻快滑动到底部的时候。

用到的知识点:

1;document.body.scrollHeight  页面总高度

 document.body.scrollTop  滚动的高度

 document.documentElement.clientHeight 可见区域的高度

 当滚动到页面最底部的时候document.body.scrollHeight - document.body.scrollTop = document.documentElement.clientHeight

另外,这样的实现方法还要求当其他的view没有被选中时,要隐藏掉,选中时在显示出来,以便不影响document.body.scrollHeight和document.body.scrollTop的值。

在这么实施的时候遇到一个问题,也许是css3和display的组合使用的问题。当时该显示的时候没有正常显示出来。所以最后没有使用display:none,而是使用的height和overflow的组合,具体css3和display的bug留到以后有时间的时候再来看。

2:在Util中新增了CreateHTML,将拼好的字符串转成html以便于使用appendChild的方法

CreateHTML: function (htmlStr) {

        var frag = document.createDocumentFragment(),

        temp = document.createElement('div');

        temp.innerHTML = htmlStr;

        while (temp.firstChild) {

            frag.appendChild(temp.firstChild);

        }

        return frag;

    }

注意方法体利用了:当把一个节点的childNode append到另一个节点时,该childNode会从原来的节点处删除!!!!!!!

3,在移动端,由于人为的禁止了touchmove事件,所以要手动设置滚动效果

var target = $.AppFrame.GetEventTargetObj(e);

var offsetY = target.clientY - $.AppFrame.startY;

document.body.scrollTop = $.AppFrame.startScrollTop - offsetY;

让滚动条随着手势滚动

Demo入口:摸这里