📄 slider.js
字号:
/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */YAHOO.widget.Slider=function(_1,_2,_3){if(_1){this.init(_1,_2,true);var _4=this;this.thumb=_3;_3.onChange=function(){_4.onThumbChange();};var el=_3.getEl();this.thumbCenterPoint={x:el.offsetWidth/2,y:el.offsetHeight/2};this.isTarget=false;this.animate=YAHOO.widget.Slider.ANIM_AVAIL;this.baselinePos=YAHOO.util.Dom.getXY(this.getEl());this.tickPause=40;if(_3._isHoriz&&_3.xTicks){this.tickPause=Math.round(360/_3.xTicks.length);}else{if(_3.yTicks){this.tickPause=Math.round(360/_3.yTicks.length);}}_3.onMouseDown=function(){return _4.focus();};_3.b4MouseDown=function(){return _4.b4MouseDown();};_3.onMouseUp=function(){_4.onMouseUp();};_3.onDrag=function(){_4.fireEvents();};if(_3._isRegion){this.setRegionValue(0,0);}else{this.setValue(0);}}};YAHOO.widget.Slider.prototype=new YAHOO.util.DragDrop();YAHOO.widget.Slider.getHorizSlider=function(_6,_7,_8,_9,_10){return new YAHOO.widget.Slider(_6,_6,new YAHOO.widget.SliderThumb(_7,_6,_8,_9,0,0,_10));};YAHOO.widget.Slider.getVertSlider=function(_11,_12,iUp,_14,_15){return new YAHOO.widget.Slider(_11,_11,new YAHOO.widget.SliderThumb(_12,_11,0,0,iUp,_14,_15));};YAHOO.widget.Slider.getSliderRegion=function(_16,_17,_18,_19,iUp,_20,_21){return new YAHOO.widget.Slider(_16,_16,new YAHOO.widget.SliderThumb(_17,_16,_18,_19,iUp,_20,_21));};YAHOO.widget.Slider.ANIM_AVAIL=true;YAHOO.widget.Slider.prototype.lock=function(){this.thumb.lock();this.locked=true;};YAHOO.widget.Slider.prototype.unlock=function(){this.thumb.unlock();this.locked=false;};YAHOO.widget.Slider.prototype.onMouseUp=function(){this._deferSlideEnd=true;this.fireEvents();};YAHOO.widget.Slider.prototype.focus=function(){var el=this.getEl();if(el.focus){el.focus();}this.verifyOffset();if(this.isLocked()){return false;}else{this.onSlideStart();return true;}};YAHOO.widget.Slider.prototype.onChange=function(_22,_23){};YAHOO.widget.Slider.prototype.onSlideStart=function(){};YAHOO.widget.Slider.prototype.onSlideEnd=function(){};YAHOO.widget.Slider.prototype.getValue=function(){return this.thumb.getValue();};YAHOO.widget.Slider.prototype.getXValue=function(){return this.thumb.getXValue();};YAHOO.widget.Slider.prototype.getYValue=function(){return this.thumb.getYValue();};YAHOO.widget.Slider.prototype.onThumbChange=function(){var t=this.thumb;if(t._isRegion){t.onChange(t.getXValue(),t.getYValue());}else{t.onChange(t.getValue());}};YAHOO.widget.Slider.prototype.setValue=function(_25,_26){if(this.isLocked()){return false;}if(isNaN(_25)){return false;}var t=this.thumb;var _27,newY;if(t._isRegion){return false;}else{if(t._isHoriz){_27=t.initPageX+_25+this.thumbCenterPoint.x;this.moveThumb(_27,t.initPageY,_26);}else{newY=t.initPageY+_25+this.thumbCenterPoint.y;this.moveThumb(t.initPageX,newY,_26);}}return true;};YAHOO.widget.Slider.prototype.setRegionValue=function(_28,_29,_30){if(this.isLocked()){return false;}if(isNaN(_28)){return false;}var t=this.thumb;if(t._isRegion){var _31=t.initPageX+_28+this.thumbCenterPoint.x;var _32=t.initPageY+_29+this.thumbCenterPoint.y;this.moveThumb(_31,_32,_30);return true;}return false;};YAHOO.widget.Slider.prototype.verifyOffset=function(){var _33=YAHOO.util.Dom.getXY(this.getEl());if(_33[0]!=this.baselinePos[0]||_33[1]!=this.baselinePos[1]){this.thumb.resetConstraints();this.baselinePos=_33;return false;}return true;};YAHOO.widget.Slider.prototype.moveThumb=function(x,y,_36){this.verifyOffset();var _37=this;var t=this.thumb;t.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);var _p=t.getTargetCoord(x,y);var p=[_p.x,_p.y];if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!_36){this.lock();setTimeout(function(){_37.moveOneTick(p);},this.tickPause);}else{if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!_36){this.lock();var _40=new YAHOO.util.Motion(t.id,{points:{to:p}},0.4,YAHOO.util.Easing.easeOut);_40.onComplete.subscribe(function(){_37.endAnim();});_40.animate();}else{t.setDragElPos(x,y);this.fireEvents();}}};YAHOO.widget.Slider.prototype.moveOneTick=function(_41){var t=this.thumb;var _42=YAHOO.util.Dom.getXY(t.getEl());var tmp;var _44=null;if(t._isRegion){_44=this._getNextX(_42,_41);var _45=(_44)?_44[0]:_42[0];_44=this._getNextY([_45,_42[1]],_41);}else{if(t._isHoriz){_44=this._getNextX(_42,_41);}else{_44=this._getNextY(_42,_41);}}if(_44){YAHOO.util.Dom.setXY(t.getEl(),_44);if(!(_44[0]==_41[0]&&_44[1]==_41[1])){var _46=this;setTimeout(function(){_46.moveOneTick(_41);},this.tickPause);}else{this.unlock();this.fireEvents();}}else{this.unlock();this.fireEvents();}};YAHOO.widget.Slider.prototype._getNextX=function(_47,_48){var t=this.thumb;var _49;var tmp=[];var _50=null;if(_47[0]>_48[0]){_49=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(_47[0]-_49,_47[1]);_50=[tmp.x,tmp.y];}else{if(_47[0]<_48[0]){_49=t.tickSize+this.thumbCenterPoint.x;tmp=t.getTargetCoord(_47[0]+_49,_47[1]);_50=[tmp.x,tmp.y];}else{}}return _50;};YAHOO.widget.Slider.prototype._getNextY=function(_51,_52){var t=this.thumb;var _53;var tmp=[];var _54=null;if(_51[1]>_52[1]){_53=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(_51[0],_51[1]-_53);_54=[tmp.x,tmp.y];}else{if(_51[1]<_52[1]){_53=t.tickSize+this.thumbCenterPoint.y;tmp=t.getTargetCoord(_51[0],_51[1]+_53);_54=[tmp.x,tmp.y];}else{}}return _54;};YAHOO.widget.Slider.prototype.b4MouseDown=function(e){this.thumb.resetConstraints();};YAHOO.widget.Slider.prototype.onMouseDown=function(e){if(!this.isLocked()){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.moveThumb(x,y);this.focus();}};YAHOO.widget.Slider.prototype.onDrag=function(e){if(!this.isLocked()){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.moveThumb(x,y,true);}};YAHOO.widget.Slider.prototype.endAnim=function(){this.unlock();this.fireEvents();};YAHOO.widget.Slider.prototype.fireEvents=function(){var t=this.thumb;t.cachePosition();if(!this.isLocked()){if(t._isRegion){var _56=t.getXValue();var _57=t.getYValue();if(_56!=this.previousX||_57!=this.previousY){this.onChange(_56,_57);}this.previousX=_56;this.previousY=_57;}else{var _58=t.getValue();if(_58!=this.previousVal){this.onChange(_58);}this.previousVal=_58;}if(this._deferSlideEnd){this.onSlideEnd();this._deferSlideEnd=false;}}};YAHOO.widget.SliderThumb=function(id,_60,_61,_62,iUp,_63,_64){if(id){this.init(id,_60);this.parentElId=_60;}this.isTarget=false;this.tickSize=_64;this.maintainOffset=true;this.initSlider(_61,_62,iUp,_63,_64);};YAHOO.widget.SliderThumb.prototype=new YAHOO.util.DD();YAHOO.widget.SliderThumb.prototype.getOffsetFromParent=function(){var _65=YAHOO.util.Dom.getXY(this.getEl());var _66=YAHOO.util.Dom.getXY(this.parentElId);return [(_65[0]-_66[0]),(_65[1]-_66[1])];};YAHOO.widget.SliderThumb.prototype.startOffset=null;YAHOO.widget.SliderThumb.prototype._isHoriz=false;YAHOO.widget.SliderThumb.prototype._prevVal=0;YAHOO.widget.SliderThumb.prototype._graduated=false;YAHOO.widget.SliderThumb.prototype.initSlider=function(_67,_68,iUp,_69,_70){this.setXConstraint(_67,_68,_70);this.setYConstraint(iUp,_69,_70);if(_70&&_70>1){this._graduated=true;}this._isHoriz=(_67>0||_68>0);this._isVert=(iUp>0||_69>0);this._isRegion=(this._isHoriz&&this._isVert);this.startOffset=this.getOffsetFromParent();};YAHOO.widget.SliderThumb.prototype.getValue=function(){var val=(this._isHoriz)?this.getXValue():this.getYValue();return val;};YAHOO.widget.SliderThumb.prototype.getXValue=function(){var _72=this.getOffsetFromParent();return (_72[0]-this.startOffset[0]);};YAHOO.widget.SliderThumb.prototype.getYValue=function(){var _73=this.getOffsetFromParent();return (_73[1]-this.startOffset[1]);};YAHOO.widget.SliderThumb.prototype.onChange=function(x,y){};if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -