-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmobile-picker.min.js
8 lines (8 loc) · 30 KB
/
mobile-picker.min.js
1
2
3
4
5
6
7
8
/*
* mobile-picker.js -https://app.zhifeishengwu.com/iknow/test/doc/
* Version - 1.0.0
* Licensed under the MIT license - http://opensource.org/licenses/MIT
*
* Copyright (c) 2019 Deepx
*/
(function(){"use strict";function FastClick(layer,options){var oldOnClick;options=options||{};this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=options.touchBoundary||10;this.layer=layer;this.tapDelay=options.tapDelay||200;this.tapTimeout=options.tapTimeout||700;if(FastClick.notNeeded(layer)){return}function bind(method,context){return function(){return method.apply(context,arguments)}}var methods=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"];var context=this;for(var i=0,l=methods.length;i<l;i++){context[methods[i]]=bind(context[methods[i]],context)}if(deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}var deviceIsWindowsPhone=navigator.userAgent.indexOf("Windows Phone")>=0;var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0&&!deviceIsWindowsPhone;var deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent)&&!deviceIsWindowsPhone;var deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);var deviceIsIOSWithBadTarget=deviceIsIOS&&/OS [6-7]_\d/.test(navigator.userAgent);var deviceIsBlackBerry10=navigator.userAgent.indexOf("BB10")>0;FastClick.prototype.needsClick=function(target){switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"iframe":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){if(deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){var length;if(deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"&&targetElement.type!=="month"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!deviceIsIOS4){if(touch.identifier&&touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<this.tapDelay){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<this.tapDelay){this.cancelNextClick=true;return true}if(event.timeStamp-this.trackingClickStart>this.tapTimeout){return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);this.sendClick(targetElement,event);if(!deviceIsIOS||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(deviceIsIOS&&!deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){var layer=this.layer;if(deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){var metaViewport;var chromeVersion;var blackberryVersion;var firefoxVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&document.documentElement.scrollWidth<=window.outerWidth){return true}}}else{return true}}if(deviceIsBlackBerry10){blackberryVersion=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);if(blackberryVersion[1]>=10&&blackberryVersion[2]>=3){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(document.documentElement.scrollWidth<=window.outerWidth){return true}}}}if(layer.style.msTouchAction==="none"||layer.style.touchAction==="manipulation"){return true}firefoxVersion=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(firefoxVersion>=27){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport&&(metaViewport.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)){return true}}if(layer.style.touchAction==="none"||layer.style.touchAction==="manipulation"){return true}return false};FastClick.attach=function(layer,options){return new FastClick(layer,options)};if(typeof define==="function"&&typeof define.amd==="object"&&define.amd){define(function(){return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}})();var docWidth=window.offsetWidth;var docHeight=window.offsetHeight;window.onresize=function(){docWidth=window.offsetWidth;docHeight=window.offsetHeight;rem()};rem();function rem(doc){let _doc=doc;if(!doc){_doc=750/2}document.querySelector("html").style.fontSize=window.innerWidth/_doc*100+"px"}class Zfui{constructor(){this.toastSt="";this.pulldownVariable={pNode:"",start:{x:0,y:0},drect:"",movelenth:0,step:4,maxLenth:180,isAnimate:false};this.form();FastClick.attach(document.body)}toast(text,duration,callback){duration=duration?duration:800;var _node=document.createElement("div");_node.setAttribute("class","toast");_node.setAttribute("t_expire",Date.parse(new Date));_node.innerHTML=text;document.querySelector("body").appendChild(_node);_node.style.left=Math.ceil((document.body.offsetWidth-_node.offsetWidth)/2)+"px";if(this.toastSt){clearTimeout(this.toastSt)}this.toastSt=setTimeout(function(){var toasts=document.querySelectorAll(".toast");toasts.forEach(function(d){document.body.removeChild(d)});callback&&callback()},duration)}loading(_method,_text){if(_method=="show"){document.body.style.height="100vh";document.body.style.overflow="hidden";var _node=document.createElement("div");_node.setAttribute("class","loading");if(_text){_node.innerHTML=`\n <div class="loading-box">\n <div class="loading-icon"></div>\n <div class="loading-desc">`+_text+`</div>\n </div>\n `}else{_node.innerHTML=`\n <div class="loading-box">\n <div class="loading-icon"></div>\n </div>\n `}document.body.appendChild(_node);setTimeout(function(){document.querySelector(".loading-box").style.opacity=1},1)}else{document.body.style.height="auto";document.body.style.overflow="auto";document.querySelector(".loading-box").style.opacity=0;setTimeout(function(){var _pnode=document.querySelector(".loading");document.querySelector("body").removeChild(_pnode)},200)}}form(){var form={};document.querySelectorAll(".zf-form .zf-form-item").forEach(function(d){if(!d.querySelector("input")){return false}var clearNode=document.createElement("div");clearNode.setAttribute("class","zf-form-clear");clearNode.addEventListener("click",function(){let _input=this.parentNode.querySelector("input");form[_input.getAttribute("name")]=this.value;_input.value="";this.style.display="none"},false);d.querySelector(".zf-form-inner").append(clearNode);d.querySelector("input").addEventListener("input",function(e){form[this.getAttribute("name")]=this.value;if(this.value.length>0){this.parentNode.querySelector(".zf-form-clear").style.display="block"}else{this.parentNode.querySelector(".zf-form-clear").style.display="none"}},false)})}tabs(_class,_active,callback){let _pNode=document.querySelector(_class);if(!_class||!_pNode){return false}if(typeof _active=="function"){callback=_active}else{_active=_active?_active:0}_pNode.setAttribute("tab-active",_active);_pNode.querySelectorAll(".zf-tab")[_active].setAttribute("class","zf-tab zf-tab-active");_pNode.querySelectorAll(".zf-tab-content")[_active].style.display="block";_pNode.querySelectorAll(".zf-tab").forEach((p,i)=>{p.setAttribute("tab-index",i);p.addEventListener("click",function(){_pNode.querySelectorAll(".zf-tab-content")[_pNode.getAttribute("tab-active")].style.display="none";_pNode.querySelector(".zf-tab-content["+this.getAttribute("tab-target")+"]").style.display="block";_pNode.querySelector(".zf-tab-active").setAttribute("class","zf-tab");this.setAttribute("class","zf-tab zf-tab-active");_pNode.setAttribute("tab-active",this.getAttribute("tab-index"));callback&&callback(this.getAttribute("tab-index"))},false)})}pulldown(_method,_class,_callback){var that=this.pulldownVariable;var _that=this;if(_method=="start"){if(typeof _class=="function"){_callback=_class;that.pNode=document.querySelector(".pulldown")}else{that.pNode=document.querySelector(_class)}var iconNode=document.createElement("div");iconNode.setAttribute("class","pulldown-icon");iconNode.innerHTML='<i class="iconfont"></i>';that.pNode.appendChild(iconNode);that.pNode.addEventListener("touchstart",function(e){e.preventDefault();if(that.isAnimate){return}that.start.x=e.targetTouches[0].pageX;that.start.y=e.targetTouches[0].pageY;that.pNode.style.overflow="visible";that.pNode.querySelector(".pulldown-icon").style.transition=""},{passive:false});that.pNode.addEventListener("touchmove",function(e){e.preventDefault();if(that.isAnimate){return}let moveX=e.targetTouches[0].pageX;let moveY=e.targetTouches[0].pageY;if(moveY>that.start.y){that.movelenth=that.movelenth+Math.abs(moveY-that.start.y);that.movelenth=that.movelenth>that.maxLenth?that.maxLenth:that.movelenth}else{that.movelenth=that.movelenth-Math.abs(moveY-that.start.y);that.movelenth=that.movelenth<0?0:that.movelenth}that.start={x:moveX,y:moveY};that.pNode.querySelector(".pulldown-icon").style.transform="translateY("+that.movelenth+"px)rotate("+that.movelenth*5+"deg)"},{passive:false});that.pNode.addEventListener("touchend",function(e){e.preventDefault();if(that.isAnimate){return}that.isAnimate=true;if(that.movelenth<120){_that.pulldown();return false}that.pNode.querySelector(".pulldown-icon").style.transition="all 0.3s";setTimeout(()=>{that.pNode.querySelector(".pulldown-icon").style.transform="translateY(120px)rotate("+that.movelenth*4+"deg)"},10);setTimeout(()=>{that.pNode.querySelector(".pulldown-icon").style.transition="";that.pNode.querySelector(".pulldown-icon").style.animation="pulldownLoading 1s linear infinite"},300);_callback()},{passive:false})}else{that.pNode.querySelector(".pulldown-icon").style.animation="";setTimeout(()=>{that.pNode.querySelector(".pulldown-icon").style.transition="all 0.5s";that.pNode.querySelector(".pulldown-icon").style.transform="translateY(0)"},50);setTimeout(function(){that.pNode.style.overflow="hidden";that.isAnimate=false;that.movelenth=0},400)}}popup(_params,_callback){let _pickerObj="";if(!_params){_params={}}if(!_params.cancel){_params.cancel="取消"}if(!_params.comfirm){_params.comfirm="确定"}var _pNode=document.createElement("div");_pNode.setAttribute("class","zf-popup");document.body.appendChild(_pNode);_pNode.innerHTML=`\n <div class="zf-popup">\n <div class="zf-popup-box">\n <div class="zf-popup-title">\n <a href="javascript:void(0)" class="zf-popup-title-btn zf-popup-title-l" data-comfirm="false">取消</a>\n <h5 class="zf-popup-title-m"></h5>\n <a href="javascript:void(0)" class="zf-popup-title-btn zf-popup-title-r" data-comfirm="true">确定</a>\n </div>\n <div class="zf-popup-content">\n 请在这里填充是内容\n </div>\n </div>\n </div>\n `;var _node=_pNode.querySelector(".zf-popup-box");_pNode.querySelector(".zf-popup-title-m").innerHTML=_params.title||"";_pNode.querySelector(".zf-popup-content").innerHTML=_params.content||"";_pNode.querySelector(".zf-popup-title-l").innerHTML=_params.cancel||"";_pNode.querySelector(".zf-popup-title-r").innerHTML=_params.comfirm||"";_node.style.transform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_pNode.addEventListener("touchmove",function(e){e.preventDefault()},false);setTimeout(()=>{_node.style.transition="all 0.5s";_node.style.transform="translateY(0)"},10);_pNode.querySelectorAll(".zf-popup-title-btn").forEach(n=>{n.addEventListener("click",function(cn){_callback&&_callback(this.getAttribute("data-comfirm"));_node.style.transform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";setTimeout(()=>{document.querySelector("body").removeChild(_pNode)},500)})});return _pickerObj}picker(){return new Picker}}const zfui=new Zfui;class Picker{constructor(){this.pickerBox="";this.pNode=[];this.cNode=[];this.cNodeHeight=[];this.cNodeLength=[];this._curY=[];this._minDistance=[];this._maxDistance=[];this._moveDistance=[];this.data=[];this.index=[];this.indexArr=[];this.dataArr=[];this.onClose=new CustomEvent("onClose",{detail:{index:this.indexArr,data:this.dataArr}});this.onMoveEnd=new CustomEvent("onMoveEnd",{detail:{index:this.indexArr,data:this.dataArr}})}event(type,callback){switch(type){case"onClose":this.onCloseEvent(callback);break;case"onMoveEnd":this.onMoveEndEvent(callback);break}}onCloseEvent(callback){this.pickerBox.addEventListener("onClose",function(event){callback(event.detail)},false)}onMoveEndEvent(callback){this.pickerBox.addEventListener("onMoveEnd",function(event){callback(event.detail)},false)}showPopup(_params){let that=this;if(!_params){_params={}}if(!_params.cancel){_params.cancel="取消"}if(!_params.comfirm){_params.comfirm="确定"}document.querySelector("body").style.overflow="hidden";var _pNode=document.createElement("div");_pNode.setAttribute("class","zf-popup");document.body.appendChild(_pNode);_pNode.innerHTML=`\n <div class="zf-popup-box">\n <div class="zf-popup-title">\n <a href="javascript:void(0)" class="zf-popup-title-btn zf-popup-title-l" data-comfirm="false">取消</a>\n <h5 class="zf-popup-title-m"></h5>\n <a href="javascript:void(0)" class="zf-popup-title-btn zf-popup-title-r" data-comfirm="true">确定</a>\n </div>\n <div class="zf-popup-content"></div>\n </div>\n `;var _node=_pNode.querySelector(".zf-popup-box");_pNode.querySelector(".zf-popup-title-m").innerHTML=_params.title||"";_pNode.querySelector(".zf-popup-content").innerHTML=_params.content||"";_pNode.querySelector(".zf-popup-title-l").innerHTML=_params.cancel||"";_pNode.querySelector(".zf-popup-title-r").innerHTML=_params.comfirm||"";_node.style.transform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.webkitTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.MozTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.OTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.msTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";that.pickerBox=_pNode.querySelector(".zf-popup-content");var classStr=that.pickerBox.getAttribute("class");that.pickerBox.setAttribute("class",classStr+" picker");_pNode.addEventListener("touchmove",function(e){e.preventDefault()},false);setTimeout(()=>{_node.style.transition="all 0.5s";_node.style.webkitTransition="all 0.5s";_node.style.MozTransition="all 0.5s";_node.style.OTransition="all 0.5s";_node.style.msTransition="all 0.5s";_node.style.transform="translateY(0)";_node.style.webkitTransform="translateY(0)";_node.style.MozTransform="translateY(0)";_node.style.OTransform="translateY(0)";_node.style.msTransform="translateY(0)"},10);_pNode.querySelectorAll(".zf-popup-title-btn").forEach(n=>{n.addEventListener("click",function(cn){document.querySelector("body").style.overflow="auto";if(this.getAttribute("data-comfirm")=="true"){that.pickerBox.dispatchEvent(that.onClose)}_node.style.transform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.webkitTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.MozTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.OTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";_node.style.msTransform="translateY("+document.querySelector(".zf-popup-box").clientHeight+"px)";setTimeout(()=>{document.querySelector("body").removeChild(_pNode)},500)})})}renderNormal(index,data){var that=this;that.index=index;that.data=data;that.showPopup();var pickerCheckLine=document.createElement("div");pickerCheckLine.setAttribute("class","picker-checkline");that.pickerBox.innerHTML="";that.pickerBox.appendChild(pickerCheckLine);that.data.forEach(function(ap,ai){that.pNode[ai]=document.createElement("div");that.pNode[ai].setAttribute("class","picker-cell");that.pNode[ai].setAttribute("picker-index",ai);that.pickerBox.appendChild(that.pNode[ai]);ap.forEach(function(bp,bi){var pickerItem=document.createElement("div");pickerItem.setAttribute("class","picker-item");pickerItem.innerHTML=bp;that.pNode[ai].appendChild(pickerItem)});that.makeMethod(ai,true)})}makeMethod(ai,bindEvent){var that=this;that.cNode[ai]=that.pNode[ai].querySelector(".picker-item");that.cNodeHeight[ai]=that.cNode[ai].clientHeight;that.cNodeLength[ai]=that.pNode[ai].querySelectorAll(".picker-item").length;var _index=that.index[ai]||0;_index=_index>that.cNodeLength[ai]-1?that.cNodeLength[ai]-1:_index;that._minDistance[ai]=Math.ceil((that.pNode[ai].clientHeight-that.cNodeHeight[ai])/2);that._maxDistance[ai]=that._minDistance[ai]-(that.cNodeLength[ai]-1)*that.cNodeHeight[ai];that._moveDistance[ai]=that._minDistance[ai]-_index*that.cNodeHeight[ai];that.indexArr[ai]=_index;that.dataArr[ai]=that.data[ai][_index];that.pNode[ai].style.transform="translateY("+that._moveDistance[ai]+"px)";that.pNode[ai].style.webkitTransform="translateY("+that._moveDistance[ai]+"px)";that.pNode[ai].style.MozTransform="translateY("+that._moveDistance[ai]+"px)";that.pNode[ai].style.OTransform="translateY("+that._moveDistance[ai]+"px)";that.pNode[ai].style.msTransform="translateY("+that._moveDistance[ai]+"px)";if(bindEvent){that.pNode[ai].addEventListener("touchstart",function(e){that.touchstart(this,e)});that.pNode[ai].addEventListener("touchmove",function(e){that.touchmove(this,e)});that.pNode[ai].addEventListener("touchend",function(e){that.touchend(this,e)})}}touchstart(_this,e){e.preventDefault();this._curY[_this.getAttribute("picker-index")]=e.touches[0].pageY}touchmove(_this,e){e.preventDefault();var that=this;var pickerIndex=_this.getAttribute("picker-index");var _pageY=e.touches[0].pageY;if(_pageY<that._curY[pickerIndex]){that._moveDistance[pickerIndex]-=Math.abs(that._curY[pickerIndex]-_pageY)}else if(_pageY>that._curY[pickerIndex]){that._moveDistance[pickerIndex]+=Math.abs(that._curY[pickerIndex]-_pageY)}that._curY[pickerIndex]=_pageY;_this.style.transform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.webkitTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.MozTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.OTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.msTransform="translateY("+that._moveDistance[pickerIndex]+"px)"}touchend(_this,e){e.preventDefault();var that=this;var pickerIndex=_this.getAttribute("picker-index");var _moveDistance=that._moveDistance[pickerIndex];var _minDistance=that._minDistance[pickerIndex];var _maxDistance=that._maxDistance[pickerIndex];var cNodeHeight=that.cNodeHeight[pickerIndex];var cNodeLength=that.cNodeLength[pickerIndex];var indexArr=that.indexArr;if(_moveDistance>_minDistance){_this.style.transition="all 0.5s";indexArr[pickerIndex]=0;that.dataArr[pickerIndex]=that.data[pickerIndex][indexArr[pickerIndex]];setTimeout(()=>{_this.style.transform="translateY("+_minDistance+"px)";_this.style.webkitTransform="translateY("+_minDistance+"px)";_this.style.MozTransform="translateY("+_minDistance+"px)";_this.style.OTransform="translateY("+_minDistance+"px)";_this.style.msTransform="translateY("+_minDistance+"px)";that._moveDistance[pickerIndex]=_minDistance},10);setTimeout(()=>{_this.style.transition="";_this.style.webkitTransition="";_this.style.MozTransition="";_this.style.OTransition="";_this.style.msTransition="";that.pickerBox.dispatchEvent(that.onMoveEnd)},500)}else if(_moveDistance<_maxDistance){_this.style.transition="all 0.5s";indexArr[pickerIndex]=cNodeLength-1;that.dataArr[pickerIndex]=that.data[pickerIndex][indexArr[pickerIndex]];setTimeout(()=>{that._moveDistance[pickerIndex]=_maxDistance;_this.style.transform="translateY("+_maxDistance+"px)";_this.style.webkitTransform="translateY("+_maxDistance+"px)";_this.style.MozTransform="translateY("+_maxDistance+"px)";_this.style.OTransform="translateY("+_maxDistance+"px)";_this.style.msTransform="translateY("+_maxDistance+"px)"},10);setTimeout(()=>{_this.style.transition="";_this.style.webkitTransition="";_this.style.MozTransition="";_this.style.OTransition="";_this.style.msTransition="";that.pickerBox.dispatchEvent(that.onMoveEnd)},500)}else{indexArr[pickerIndex]=Math.ceil((_minDistance-_moveDistance)/cNodeHeight)>cNodeLength?cNodeLength:Math.ceil((_minDistance-_moveDistance)/cNodeHeight);that._moveDistance[pickerIndex]=_minDistance-(indexArr[pickerIndex]-1)*cNodeHeight;indexArr[pickerIndex]-=1;that.dataArr[pickerIndex]=that.data[pickerIndex][indexArr[pickerIndex]];_this.style.transition="all 0.2s";setTimeout(()=>{_this.style.transform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.webkitTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.MozTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.OTransform="translateY("+that._moveDistance[pickerIndex]+"px)";_this.style.msTransform="translateY("+that._moveDistance[pickerIndex]+"px)"},10);setTimeout(()=>{_this.style.transition="";_this.style.webkitTransition="";_this.style.MozTransition="";_this.style.OTransition="";_this.style.msTransition="";that.pickerBox.dispatchEvent(that.onMoveEnd)},200)}}updatePicker(column,data){var that=this;if(!Boolean(data)&&!Boolean(that.data[column])){return false}if(Boolean(that.data[column])&&that.data[column].toString()==data.toString()){return false}if(!Boolean(data)){that.pickerBox.removeChild(that.pNode[column]);that.pNode.splice(column,1);that.cNode.splice(column,1);that.cNodeHeight.splice(column,1);that.cNodeLength.splice(column,1);that._minDistance.splice(column,1);that._maxDistance.splice(column,1);that._moveDistance.splice(column,1);that.data.splice(column,1);that.indexArr.splice(column,1);that.index.splice(column,1);return false}else{that.data[column]=data;that.index[column]=0}if(!that.pickerBox.querySelectorAll(".picker-cell")[column]){var pickerCell=document.createElement("div");pickerCell.setAttribute("class","picker-cell");pickerCell.setAttribute("picker-index",column);that.pickerBox.appendChild(pickerCell);that.pNode[column]=pickerCell;data.forEach(bp=>{var pickerItem=document.createElement("div");pickerItem.setAttribute("class","picker-item");pickerItem.innerHTML=bp;that.pickerBox.querySelectorAll(".picker-cell")[column].appendChild(pickerItem)});that.makeMethod(column,true)}else{that.pickerBox.querySelectorAll(".picker-cell")[column].innerHTML="";data.forEach(bp=>{var pickerItem=document.createElement("div");pickerItem.setAttribute("class","picker-item");pickerItem.innerHTML=bp;that.pickerBox.querySelectorAll(".picker-cell")[column].appendChild(pickerItem)});that.makeMethod(column,false)}if(that.data[column].length>data.length&&that.index[column]==that.data[column].length-1){that.index[column]=data.length-1;that._moveDistance[column]=that._minDistance[column]-that.index[column]*that.cNodeHeight[column];that.pNode[column].style.transform="translateY("+that._moveDistance[column]+"px)";that.pNode[column].style.webkitTransform="translateY("+that._moveDistance[column]+"px)";that.pNode[column].style.MozTransform="translateY("+that._moveDistance[column]+"px)";that.pNode[column].style.OTransform="translateY("+that._moveDistance[column]+"px)";that.pNode[column].style.msTransform="translateY("+that._moveDistance[column]+"px)"}}}