Files
peko-h5/view/peko/common/js/mescroll.min.js

15 lines
16 KiB
JavaScript
Raw Normal View History

2022-09-08 18:22:18 +08:00
/*!
* mescroll -- 精致的下拉刷新和上拉加载js框架 ( a great JS framework for pull-refresh and pull-up-loading )
* version 1.3.2
* 2018-01-01
* author: wenju < mescroll@qq.com > 文举
*
* 官网: http://www.mescroll.com
* 文档: https://github.com/mescroll/mescroll.git
* 动态: https://github.com/mescroll/mescroll-versions
* 问答:http://www.mescroll.com/qa.html
* issues: https://github.com/mescroll/mescroll/issues
* QQ交流群: 633126761
*/
;(function(a,b){var c=typeof define==="function",d=typeof module!=="undefined"&&module.exports;if(c){define(b)}else{if(d){module.exports=b()}else{this[a]=b()}}})("MeScroll",function(){var a=function(b,e){var g=this;g.version="1.3.2";g.isScrollBody=(!b||b=="body");g.scrollDom=g.isScrollBody?document.body:g.getDomById(b);if(!g.scrollDom){return}g.options=e||{};var d=navigator.userAgent;var c=!!d.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);var h=typeof window.orientation=="undefined";var f=d.indexOf("Android")>-1||d.indexOf("Adr")>-1;g.os={ios:c,pc:h,android:f};g.isDownScrolling=false;g.isUpScrolling=false;g.initDownScroll();g.initUpScroll();setTimeout(function(){if(g.optDown.use&&g.optDown.auto){if(g.optDown.autoShowLoading){g.triggerDownScroll()}else{g.optDown.callback&&g.optDown.callback(g)}}g.optUp.use&&g.optUp.auto&&!g.isUpAutoLoad&&g.triggerUpScroll()},30)};a.prototype.extendDownScroll=function(b){a.extend(b,{use:true,auto:true,autoShowLoading:false,isLock:false,isBoth:false,offset:80,outOffsetRate:0.2,bottomOffset:20,minAngle:45,hardwareClass:"mescroll-hardware",warpId:null,warpClass:"mescroll-downwarp",resetClass:"mescroll-downwarp-reset",htmlContent:'<p class="downwarp-progress"></p><p class="downwarp-tip">下拉刷新 </p>',inited:function(d,c){d.downTipDom=c.getElementsByClassName("downwarp-tip")[0];d.downProgressDom=c.getElementsByClassName("downwarp-progress")[0]},inOffset:function(c){if(c.downTipDom){c.downTipDom.innerHTML="下拉刷新"}if(c.downProgressDom){c.downProgressDom.classList.remove("mescroll-rotate")}},outOffset:function(c){if(c.downTipDom){c.downTipDom.innerHTML="释放更新"}},onMoving:function(d,f,c){if(d.downProgressDom){var e=360*f;d.downProgressDom.style.webkitTransform="rotate("+e+"deg)";d.downProgressDom.style.transform="rotate("+e+"deg)"}},beforeLoading:function(d,c){return false},showLoading:function(c){if(c.downTipDom){c.downTipDom.innerHTML="加載中 ..."}if(c.downProgressDom){c.downProgressDom.classList.add("mescroll-rotate")}},callback:function(c){c.resetUpScroll()}})};a.prototype.extendUpScroll=function(b){var c=this.os.pc;a.extend(b,{use:true,auto:true,isLock:false,isBoth:false,isBounce:true,callback:null,page:{num:0,size:10,time:null},noMoreSize:5,offset:100,toTop:{warpId:null,src:null,html:null,offset:1000,warpClass:"mescroll-totop",showClass:"mescroll-fade-in",hideClass:"mescroll-fade-out",duration:300,supportTap:false},loadFull:{use:false,delay:500},empty:{warpId:null,icon:null,tip:"仅支持查看3个月内记录",btntext:"",btnClick:null,supportTap:false},clearId:null,clearEmptyId:null,hardwareClass:"mescroll-hardware",warpId:null,warpClass:"mescroll-upwarp",htmlLoading:'<p class="upwarp-progress mescroll-rotate"></p><p class="upwarp-tip">加載中..</p>',htmlNodata:'<p class="upwarp-nodata">-- 仅支持查看3个月内记录 --</p>',inited:function(d,e){},showLoading:function(d,e){e.innerHTML=d.optUp.htmlLoading},showNoMore:function(d,e){e.innerHTML=d.optUp.htmlNodata},onScroll:null,scrollbar:{use:c,barClass:"mescroll-bar"}})};a.extend=function(c,b){if(!c){return b}for(var key in b){if(c[key]==null){c[key]=b[key]}else{if(typeof c[key]=="object"){a.extend(c[key],b[key])}}}return c};a.prototype.initDownScroll=function(){var c=this;c.optDown=c.options.down||{};c.extendDownScroll(c.optDown);c.touchstartEvent=function(d){if(c.isScrollTo){d.preventDefault()}c.startPoint=c.getPoint(d);c.lastPoint=c.startPoint;c.maxTouchmoveY=c.getBodyHeight()-c.optDown.bottomOffset;c.inTouchend=false;if(c.os.pc&&c.getScrollTop()<=0){c.scrollDom.addEventListener("mousemove",c.touchmoveEvent);document.ondragstart=function(){return false}}};c.scrollDom.addEventListener("mousedown",c.touchstartEvent);c.scrollDom.addEventListener("touchstart",c.touchstartEvent);c.touchmoveEvent=function(l){var d=c.getScrollTop();var h=c.getPoint(l);var f=h.y-c.startPoint.y;if(f>0){if(d<=0){if(l.cancelable&&!l.defaultPrevented){l.preventDefault()}if(c.optDown.use&&!c.inTouchend&&!c.isDownScrolling&&!c.optDown.isLock&&(!c.isUpScrolling||(c.isUpScrolling&&c.optUp.isBoth))){var o=Math.abs(c.lastPoint.x-h.x);var n=Math.abs(c.la