sdc-alibaba / SUI-Mobile

SUI Mobile (MSUI)是由阿里巴巴国际UED前端出品的移动端UI库,轻量精美
http://m.sui.taobao.org/components/
MIT License
6.1k stars 1.58k forks source link

上拉加载更多和下拉刷新能否同时存在 #561

Open phillipxu opened 8 years ago

phillipxu commented 8 years ago

同一个content 不仅要支持上拉加载和下拉刷新。。。问题:在刚刚开始没有占满一页的时候,下拉刷新是可以的。。但同时这个模块也触发了上拉动作(在下拉完成往回弹时),然后上拉的时候默认是上拉了两次。。。开始加载第3页的数据了

flybbjcs70 commented 8 years ago

能。刷新会判断是否在一屏内,是则刷新。

phillipxu commented 8 years ago

请问是怎么判断的。。。贴个代码看看可以么

flybbjcs70 commented 8 years ago
 $.initPullToRefresh = function(pageContainer) {

        function handleTouchMove(e) {
            if (!isTouched) return;
            var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
            var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
            if (typeof isScrolling === 'undefined') {
                isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x));
            `}`
            if (!isScrolling) {
                isTouched = false;
                return;
            }

            scrollTop = container[0].scrollTop;

            if (typeof wasScrolled === 'undefined' && scrollTop !== 0) wasScrolled = true;
             if (!isMoved) {
                /*jshint validthis:true */
                container.removeClass('transitioning');
                if (scrollTop > container[0].offsetHeight) {      //这句    //这句    //这句    //这句
                    isTouched = false; 
                    return;
                }
                if (dynamicTriggerDistance) {
                    triggerDistance = container.attr('data-ptr-distance');
                    if (triggerDistance.indexOf('%') >= 0) triggerDistance = container[0].offsetHeight * parseInt(triggerDistance, 10) / 100;
                }
                startTranslate = container.hasClass('refreshing') ? triggerDistance : 0;
                if (container[0].scrollHeight === container[0].offsetHeight || !$.device.ios) {
                    useTranslate = true;
                } else {
                    useTranslate = false;
                }
                useTranslate = true;
            }
phillipxu commented 8 years ago

我试试去。谢了

zhonglu900505 commented 8 years ago

楼主是如何解决的