📄 sld.js
字号:
zk.Slider=Class.create();zk.Slider.prototype={initialize:function(_1){this.id=_1.id;zkau.setMeta(_1,this);this.init();},cleanup:function(){if(this.draggable){this.draggable.destroy();this.draggable.slider=null;this.draggable=null;}if(this.fnSubmit){zk.unlisten(this.form,"submit",this.fnSubmit);}this.element=this.fnSubmit=null;},init:function(){this.cleanup();this.element=$e(this.id);if(!this.element){return;}this.button=$e(this.id+"!btn");var _2=this;var _3=function(x,y){return _2._snap(x,y);};this.draggable=new Draggable(this.button,{constraint:"horizontal",snap:_3,starteffect:zkSld._startDrag,change:zkSld._dragging,endeffect:zkSld._endDrag});this.form=zk.formOf(this.element);if(this.form&&!this.fnSubmit){this.fnSubmit=function(){_2.onsubmit();};zk.listen(this.form,"submit",this.fnSubmit);}setTimeout("zkSld._fixPos('"+this.id+"')",20);},_snap:function(x,y){var _8=Position.cumulativeOffset(this.element);_8=zk.toStyleOffset(this.button,_8[0],_8[1]);if(x<=_8[0]){x=_8[0];}else{var _9=_8[0]+this._width();if(x>_9){x=_9;}}if(y<=_8[1]){y=_8[1];}else{var _9=_8[1]+this.element.clientHeight;if(y>_9){y=_9;}}return [x,y];},_fixPos:function(){var wd=this._width();var x=wd>0?Math.round((this._curpos()*wd)/this._maxpos()):0;var _c=Position.cumulativeOffset(this.element);_c=zk.toStyleOffset(this.button,_c[0],_c[1]);_c=this._snap(_c[0]+x,0);this.button.style.left=_c[0]+"px";},_startDrag:function(){this.button.title="";this.slidepos=this._curpos();document.body.insertAdjacentHTML("beforeend","<div id=\"zul_slidetip\" style=\"position:absolute;display:none;z-index:60000;background-color:white;border: 1px outset\">"+this.slidepos+"</div>");this.slidetip=$e("zul_slidetip");if(this.slidetip){this.slidetip.style.display="block";zk.position(this.slidetip,this.element,"after-start");}},_dragging:function(){var _d=this._realpos();if(_d!=this.slidepos){this.slidepos=_d;if(this.slidetip){this.slidetip.innerHTML=_d;}if(zkau.asap(this.element,"onScrolling")){zkau.send({uuid:this.element.id,cmd:"onScrolling",data:[_d],ignorable:true},100);}}},_endDrag:function(){var _e=this._realpos();var _f=this._curpos();if(_e!=_f){setZKAttr(this.element,"curpos",_e);zkau.send({uuid:this.element.id,cmd:"onScroll",data:[_e]},zkau.asapTimeout(this.element,"onScroll"));}this._fixPos();this.button.title=_e;zk.remove(this.slidetip);this.slidetip=null;},_realpos:function(){var _10=Position.cumulativeOffset(this.button);var _11=Position.cumulativeOffset(this.element);var _12=this._maxpos();var wd=this._width();var pos=wd?Math.round(((_10[0]-_11[0])*_12)/wd):0;return pos>=0?pos:0;},_curpos:function(){return $int(getZKAttr(this.element,"curpos"));},_maxpos:function(){return $int(getZKAttr(this.element,"maxpos"));},_width:function(){return this.element.clientWidth-this.button.offsetWidth;},onsubmit:function(){var nm=getZKAttr(this.element,"name");if(!nm||!this.form){return;}var val=this._curpos(),el=this.form.elements[nm];if(el){el.value=val;}else{zk.newHidden(nm,val,this.form);}}};zkSld={};zkSld.init=function(cmp){var _19=zkau.getMeta(cmp);if(_19){_19.init();}else{new zk.Slider(cmp);}};zkSld._startDrag=function(_1a){var _1b=zkSld._metaByBtn(_1a);return _1b?_1b._startDrag():null;};zkSld._endDrag=function(_1c){var _1d=zkSld._metaByBtn(_1c);return _1d?_1d._endDrag():null;};zkSld._dragging=function(_1e){var _1f=zkSld._metaByBtn(_1e.element);return _1f?_1f._dragging():null;};zkSld._metaByBtn=function(_20){var _21=_20.id;return zkau.getMeta(_21.substring(0,_21.length-4));};zkSld.setAttr=function(cmp,nm,val){if("z.curpos"==nm){setZKAttr(cmp,"curpos",val);var _25=zkau.getMeta(cmp);if(_25){_25._fixPos();}return true;}return false;};zkSld.onVisi=zkSld.onSize=zkSld._fixPos=function(cmp){var _27=zkau.getMeta(cmp);if(_27){_27._fixPos();}};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -