From 1572b1c4632a775f8c2248cca359ff5d12625769 Mon Sep 17 00:00:00 2001 From: Mingli Wu Date: Mon, 4 Jun 2018 16:51:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.iphone有些情况会触发touchcancel不触发touchend 2.元素被隐藏后transition事件不会被隐藏 --- dist/dropload.js | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/dist/dropload.js b/dist/dropload.js index 4eb3670..18bb4bb 100644 --- a/dist/dropload.js +++ b/dist/dropload.js @@ -57,7 +57,7 @@ // 如果加载下方,事先在下方插入DOM if(me.opts.loadDownFn != ''){ me.$element.append('
'+me.opts.domDown.domRefresh+'
'); - me.$domDown = $('.'+me.opts.domDown.domClass); + me.$domDown = $('.'+me.opts.domDown.domClass, me.$element); } // 计算提前加载距离 @@ -110,7 +110,7 @@ fnTouchmove(e, me); } }); - me.$element.on('touchend',function(){ + me.$element.on('touchend touchcancel',function(){ if(!me.loading){ fnTouchend(me); } @@ -158,7 +158,7 @@ if(me.opts.loadUpFn != '' && me.touchScrollTop <= 0 && me.direction == 'down' && !me.isLockUp){ e.preventDefault(); - me.$domUp = $('.'+me.opts.domUp.domClass); + me.$domUp = $('.'+me.opts.domUp.domClass, me.$element); // 如果加载区没有DOM if(!me.upInsertDOM){ me.$element.prepend('
'); @@ -188,6 +188,7 @@ // touchend function fnTouchend(me){ var _absMoveY = Math.abs(me._moveY); + var end = false; if(me.opts.loadUpFn != '' && me.touchScrollTop <= 0 && me.direction == 'down' && !me.isLockUp){ fnTransition(me.$domUp,300); @@ -197,10 +198,16 @@ me.loading = true; me.opts.loadUpFn(me); }else{ - me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend',function(){ + me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend webkitTransitioncancel mozTransitioncancel transitioncancel',function(){ me.upInsertDOM = false; $(this).remove(); }); + //fix bug: 元素被隐藏后高度为0,而transitionend不会被触发 + setTimeout(function(){ + if(!me.$domUp.height() && !end) { + me.$domUp.trigger('transitionend'); + } + },500); } me._moveY = 0; } @@ -281,13 +288,21 @@ // 重置 MyDropLoad.prototype.resetload = function(){ var me = this; + var end = false; if(me.direction == 'down' && me.upInsertDOM){ - me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend',function(){ - me.loading = false; + me.$domUp.css({'height':'0'}).on('webkitTransitionEnd mozTransitionEnd transitionend webkitTransitioncancel mozTransitioncancel transitioncancel',function(){ + end = true; + me.loading = false; me.upInsertDOM = false; $(this).remove(); fnRecoverContentHeight(me); }); + //fix bug: 元素被隐藏后高度为0,而transitionend不会被触发 + setTimeout(function(){ + if(!end && !me.$domUp.height()) { + me.$domUp.trigger('transitionend'); + } + },500); }else if(me.direction == 'up'){ me.loading = false; // 如果有数据 @@ -310,4 +325,4 @@ 'transition':'all '+num+'ms' }); } -})(window.Zepto || window.jQuery); \ No newline at end of file +})(window.Zepto || window.jQuery); From e262328cd2d2a77933cccf10e2aded7dbdb84097 Mon Sep 17 00:00:00 2001 From: Mingli Wu Date: Mon, 4 Jun 2018 17:56:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=93=E5=90=88=E5=85=B6=E4=BB=96pullreq?= =?UTF-8?q?ust=20=E5=81=9A=E7=9A=84=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/dropload.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dist/dropload.js b/dist/dropload.js index 18bb4bb..d021436 100644 --- a/dist/dropload.js +++ b/dist/dropload.js @@ -119,6 +119,9 @@ // 加载下方 me.$scrollArea.on('scroll',function(){ me._scrollTop = me.$scrollArea.scrollTop(); + + // 重新获取文档高度 #74 https://github.com/ximan/dropload/pull/74/commits/28abc29bfe65665df4e19f3ce9c7e41a27aa2c27 + fnRecoverContentHeight(me); // 滚动页面触发加载数据 if(me.opts.loadDownFn != '' && !me.loading && !me.isLockDown && (me._scrollContentHeight - me._threshold) <= (me._scrollWindowHeight + me._scrollTop)){ @@ -215,7 +218,7 @@ // 如果文档高度不大于窗口高度,数据较少,自动加载下方数据 function fnAutoLoad(me){ - if(me.opts.loadDownFn != '' && me.opts.autoLoad){ + if(me.opts.loadDownFn != '' && me.opts.autoLoad && !me.loading && !me.isLockDown){ if((me._scrollContentHeight - me._threshold) <= me._scrollWindowHeight){ loadDown(me); } @@ -296,6 +299,8 @@ me.upInsertDOM = false; $(this).remove(); fnRecoverContentHeight(me); + // #77 https://github.com/ximan/dropload/pull/77/commits/95c9521ed856644811ebdbf7124acdfcfd251322 + fnAutoLoad(me); }); //fix bug: 元素被隐藏后高度为0,而transitionend不会被触发 setTimeout(function(){