⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slider.js

📁 zapatec suite 最新版 20070204,非常棒的ajax widgets 工具包
💻 JS
📖 第 1 页 / 共 5 页
字号:
var elements=Zapatec.Array(this.getMovableElements());elements.each(function(index,movable){if(Zapatec.isHtmlElement(movable)){movable.restorer.restoreProp("style.zIndex");movable.restorer.restoreProp("style.cursor");self._proceedDragStyles(movable,"dragEnd");}else if(Zapatec.isMovableObj(movable)){var elems=Zapatec.Array(movable.getMovableElements());elems.each(arguments.calee);}});this._proceedDraggableElements("dragEnd");Zapatec.Utils.cover.hide();this._setMovingPoint(null,null);this._setDragging(false);this.endMove();this.fireEvent("onDragEnd",ev);Zapatec.GlobalEvents.fireEvent("onDragEnd",ev,this);return Zapatec.Utils.stopEvent(ev);};Zapatec.Draggable.restorePos=function(){this.restoreOfMove();};Zapatec.Draggable.restoreOfDrag=function(){var listenersObj=this._getRestorer().getSavedProps()["dragListeners"];if(!listenersObj){return false;}this.restoreOfMove();var hooks=Zapatec.Array(this._getDraggableHooks());var draggables=Zapatec.Array(this.getDraggableElements());var self=this;var config=this.getDragConfig();hooks.each(function(index,hook){if(!Zapatec.isHtmlElement(hook)){return;}if(Zapatec.is_gecko){hook.style.setProperty("-moz-user-select","","");}Zapatec.Utils.removeEvent(hook,'mousedown',listenersObj.mousedown);if(config.eventCapture){Zapatec.Utils.removeEvent(hook,'mousemove',listenersObj.mousemove);Zapatec.Utils.removeEvent(hook,'mouseup',listenersObj.mouseup);}});draggables.each(function(index,draggable){if(!Zapatec.isHtmlElement(draggable)){return;}draggable.dragObj=null;});return true;};Zapatec.Draggable.getDraggableElements=function(){return this.getContainer();};Zapatec.Draggable._getDraggableHooks=function(){return this.getContainer();};Zapatec.Draggable.getContainer=function(){return this.getDragConfig().container;};Zapatec.Draggable.isDragging=function(){return this.dragging;};Zapatec.Draggable.canDrag=function(){return this.canDrag;};Zapatec.Draggable._setCanDrag=function(on){this.canDrag=on;};Zapatec.Draggable.getDragConfig=function(){return this.getConfiguration();};Zapatec.Draggable.setDragConfig=function(config){this.reconfigure(config);};Zapatec.Draggable._setDragging=function(on){this.dragging=on;};Zapatec.Draggable._handleCoordOverflow=function(limit,dimension){if(!this.isDragging()){Zapatec.Movable._handleCoordOverflow.call(this,limit,dimension);}return limit;};Zapatec.Draggable._getRestorer=function(){if(!this.restorer){this.restorer=new Zapatec.SRProp(this);}return this.restorer;};Zapatec.Draggable._proceedDraggableElements=function(dragState){var config=this.getDragConfig(),restorer=this._getRestorer(),copies=null,measurement=null,self=this,listenersObj=restorer.getProp("dragListeners");function toggleEvents(action,hooks,listenersObj){hooks.each(function(index,hook){Zapatec.Utils[action+"Event"](hook,"mousedown",listenersObj.mousedown);if(config.eventCapture){Zapatec.Utils[action+"Event"](hook,'mousemove',listenersObj.mousemove);Zapatec.Utils[action+"Event"](hook,'mouseup',listenersObj.mouseup);}});}switch(config.method){case"copy":case"dummy":{if(dragState=="dragStart"){var elements=Zapatec.Array(this.getDraggableElements());var hooks=Zapatec.Array(this._getDraggableHooks());copies=Zapatec.Array();toggleEvents("remove",hooks,listenersObj);elements.each(function(index,movable){if(Zapatec.isHtmlElement(movable)){var newNode=movable.cloneNode(config.copyChilds);newNode.dragObj=self;if(config.eventCapture){Zapatec.Utils.addEvent(newNode,'mousemove',listenersObj.mousemove);Zapatec.Utils.addEvent(newNode,'mouseup',listenersObj.mouseup);}movable.parentNode.insertBefore(newNode,movable);newNode.style.visibility="visible";copies.push(newNode);if(movable==self.getMovableMeasurement()){measurement=newNode;}}else if(Zapatec.isMovableObj(movable)){var elems=Zapatec.Array(movable.getMovableElements());elems.each(arguments.calee);}});toggleEvents("add",hooks,listenersObj);if(!measurement){measurement=this.getMovableMeasurement();}restorer.saveProp("getMovableElements");restorer.saveProp("isMovableSafely()");this._setMovableSafely(false);this.getMovableElements=function(resetArray){var arr=copies;copies=resetArray?null:copies;return arr;};restorer.saveProp("getMovableMeasurement");this.getMovableMeasurement=function(){return measurement;};}else if(dragState=="dragEnd"){var elements=Zapatec.Array(this.getMovableElements(true));elements.each(function(index,movable){if(config.method=="dummy"){movable.parentNode.removeChild(movable);}movable.dragObj=null;if(config.eventCapture){Zapatec.Utils.removeEvent(movable,'mousemove',listenersObj.mousemove);Zapatec.Utils.removeEvent(movable,'mouseup',listenersObj.mouseup);}});this.restoreOfMove();restorer.restoreProp("getMovableElements");this._setMovableSafely(restorer.getProp("isMovableSafely()"));restorer.restoreProp("isMovableSafely()");restorer.restoreProp("getMovableMeasurement");}break;}default:{break;}}};Zapatec.Draggable._proceedDragStyles=function(movable,dragState){var config=this.getDragConfig();if(config.overwriteCSS){if(dragState=="dragStart"){movable.restorer.saveProp("className");movable.className=config.overwriteCSS;}else if(dragState=="dragEnd"){movable.restorer.restoreProp("className");}}if(config.dragCSS){if(dragState=="dragStart"){Zapatec.Utils.addClass(movable,config.dragCSS);}else if(dragState=="dragEnd"){Zapatec.Utils.removeClass(movable,config.dragCSS);}}};Zapatec.Draggable._setMovingPoint=function(x,y){var movingPoint=this._getMovingPointObject();if(x===null||y===null){movingPoint.x=null;movingPoint.y=null;movingPoint.offsetX=null;movingPoint.offsetY=null;return;}if(movingPoint.x===null||movingPoint.y===null){var pos=this.getPagePosition();movingPoint.x=x;movingPoint.y=y;movingPoint.offsetX=x-pos.x;movingPoint.offsetY=y-pos.y;}else{var pos=this.getPagePosition();movingPoint.x=pos.x+movingPoint.offsetX;movingPoint.y=pos.y+movingPoint.offsetY;}return;};Zapatec.Draggable.getMovingPoint=function(){var movingPoint=this._getMovingPointObject();return{x:movingPoint.x,y:movingPoint.y};};Zapatec.Draggable._getMovingPointObject=function(){if(!this.movingPoint||typeof this.movingPoint!="object"){this.movingPoint={x:null,y:null,offsetX:null,offsetY:null};}return this.movingPoint;};Zapatec.Utils.Draggable=function(config){if(arguments.length>1){var args=arguments[1];args.container=config;config=args;}if(typeof config.left!="undefined"||typeof config.right!="undefined"||typeof config.top!="undefined"||typeof config.bottom!="undefined"){config.limit={minX:config.left,maxX:config.right,minY:config.top,maxY:config.bottom};}if(config.dragLayer){config.moveLayer=config.dragLayer;}if(!config.eventListeners){config.eventListeners={};}if(config.beforeDragInit){config.eventListeners.beforeDragInit=config.beforeDragInit;}if(config.beforeDragMove){config.eventListeners.beforeDragMove=config.beforeDragMove;}if(config.beforeDragEnd){config.eventListeners.beforeDragEnd=config.beforeDragEnd;}if(config.onDragInit){config.eventListeners.onDragInit=config.onDragInit;}if(config.onDragMove){config.eventListeners.onDragMove=config.onDragMove;}if(config.onDragEnd){config.eventListeners.onDragEnd=config.onDragEnd;}if(config.stopEv){config.stopEvent=config.stopEv;}config=Zapatec.Hash.remove(config,"left","top","right","bottom","dragLayer","beforeDragInit","beforeDragMove","beforeDragEnd","onDragInit","onDragMove","onDragEnd","stopEv");Zapatec.Utils.Draggable.SUPERconstructor.call(this,config);};Zapatec.Utils.Draggable.id="Zapatec.Utils.Draggable";Zapatec.inherit(Zapatec.Utils.Draggable,Zapatec.Utils.Movable);Zapatec.implement(Zapatec.Utils.Draggable,"Zapatec.Draggable");Zapatec.Utils.Draggable.prototype.init=function(config){Zapatec.Utils.Draggable.SUPERclass.init.call(this,config);this.makeDraggable();};Zapatec.Utils.Draggable.prototype.configure=function(config){this.defineConfigOption("method","cut");this.defineConfigOption("stopEvent",true);this.defineConfigOption("eventCapture",false);this.defineConfigOption("handler",null);this.defineConfigOption("dragCSS",null);this.defineConfigOption("overwriteCSS",null);this.defineConfigOption("copyChilds",true);this.defineConfigOption("makeMovable",false);Zapatec.Utils.Draggable.SUPERclass.configure.call(this,config);config=this.getConfiguration();if(Zapatec.is_opera){config.eventCapture=true;}config.handler=Zapatec.Widget.getElementById(config.handler);config.handler=Zapatec.Utils.img2div(config.handler);if(!Zapatec.isHtmlElement(config.handler)){config.handler=config.container;}};Zapatec.Utils.Draggable.prototype.reconfigure=function(config){Zapatec.Utils.Draggable.SUPERclass.reconfigure.call(this,config);};Zapatec.Utils.Draggable.prototype.getDraggableElements=function(){return this.movableElements;};Zapatec.Utils.Draggable.prototype._getDraggableHooks=function(){return this.getConfiguration().handler;};Zapatec.Utils.initDragObjects=function(className,el,recursive,config){if(!className)return;var elements=Zapatec.Utils.getElementsByAttribute('className',className,el,recursive,true);return Zapatec.Utils.applyToElements(Zapatec.Utils.Draggable,elements,config);}Zapatec.Slider=function(config){this.widgetType="slider";this.priorities={count:7,destroyed:0,created:1,inited:2,loaded:3,ready:5,hidden:6,shown:7};this.widgetState="created";this.tmp={};this.setDefaultState();if(!config.eventListeners){config.eventListeners={};}if(config.onChange){config.eventListeners.onChange=config.onChange;}if(config.newPosition){config.eventListeners.newPosition=config.newPosition;}if(config.div){config.parent=config.div;}config=Zapatec.Hash.remove(config,"div","onChange","newPosition");Zapatec.Slider.SUPERconstructor.call(this,config);this.restorer=new Zapatec.SRProp(this);this.create();};Zapatec.Slider.id="Zapatec.Slider";Zapatec.inherit(Zapatec.Slider,Zapatec.Widget);Zapatec.Slider.prototype.init=function(config){Zapatec.Slider.SUPERclass.init.call(this,config);this.changeState("inited");this.loadData({object:this,action:"loadTemplate"});return true;};Zapatec.Slider.prototype.configure=function(config){this.defineConfigOption("orientation","H");this.defineConfigOption("length",100);this.defineConfigOption("dual",false);this.defineConfigOption("parent",document.body);this.defineConfigOption("range",null);this.defineConfigOption("step",1);this.defineConfigOption("start",null);this.defineConfigOption("secondStart",null);this.defineConfigOption("buttonConfig",{});this.defineConfigOption("template",Zapatec.sliderPath+this.config.orientation+".html");this.defineConfigOption("themePath",Zapatec.sliderPath+"../themes/");this.defineConfigOption("langId",Zapatec.Slider.id);this.defineConfigOption("callbackSource",function(args){var slider=args.object;if(!slider||slider.widgetType!="slider"){return null;}switch(args.action){case"loadTemplate":{return{source:slider.getConfiguration().template+"?"+Math.random(),sourceType:"html/url"};}}return null;});Zapatec.Slider.SUPERclass.configure.call(this,config);config=this.getConfiguration();if(!config.range){config.range=[0,config.length];}if(!config.start&&config.start!==0){config.start=config.range[0];}if(!config.secondStart&&config.secondStart!==0){config.secondStart=config.range[1];}if(config.orientation!="H"){config.template=Zapatec.sliderPath+config.orientation+".html";}if(!config.buttonConfig||typeof config.buttonConfig!="object"){config.buttonConfig={};}};Zapatec.Slider.prototype.reconfigure=function(config){Zapatec.Slider.SUPERclass.reconfigure.call(this,config);};Zapatec.Slider.prototype.loadDataHtml=function(el){if(this.parseDom(el)){this.changeState("loaded");}};Zapatec.Slider.prototype.create=function(){var self=this;if(!this.fireOnState("body_loaded",function(){this.create();})||!this.fireOnState("loaded",function(){this.create();})){return;}this.config.parent=Zapatec.Widget.getElementById(this.config.parent);if(!Zapatec.isHtmlElement(this.config.parent)){alert(this.getMessage('createWrongParent'));return false}Zapatec.Utils.addClass(this.container,this.getClassName({prefix:"zpSlider",suffix:"Container"}));function replaceButton(but,idPrefix,func){var config=Zapatec.Utils.clone(self.getConfiguration().buttonConfig);config.className=but.className+" "+but.className+"Inactive";config.style=but.style.cssText;config.theme=null;config.idPrefix=idPrefix;config.downAction=func;var button=new Zapatec.Button(config);var nxtSbl=but.nextSibling;var par=but.parentNode;par.removeChild(but);par.insertBefore(button.getContainer(),nxtSbl);return button;}this.btnLess=replaceButton(this.btnLess,"zpSlider"+self.id+"LessButton",function(){self.stepDown();});this.btnMore=replaceButton(this.btnMore,"zpSlider"+self.id+"MoreButton",function(){self.stepUp();});this.btnFirst=replaceButton(this.btnFirst,"zpSlider"+self.id+"FirstButton",function(){self.gotoFirst();});this.btnLast=replaceButton(this.btnLast,"zpSlider"+self.id+"LastButton",function(){self.gotoLast();});this.setElementState(this.firstSlider,"inactive");this.setElementState(this.secondSlider,"inactive");Zapatec.Utils.addEvent(this.scaleBg,"mousedown",function(ev){if(!self.config.dual){ev||(ev=window.event);var shift=null;var x=ev.layerX||ev.offsetX;var y=ev.layerY||ev.offsetY;if(self.config.orientation=="V"){shift=y-self.firstSlider.offsetHeight/2;}else{shift=x-self.firstSlider.offsetWidth/2;}if(shift<0)shift=0;if(shift>self.config.length)shift=self.config.length;shift=shift*((self.config.range[1]-self.config.range[0])/self.config.length);self.setPos(shift);var pos=self.getPos();self.fireEvent("newPosition",pos.first);}});Zapatec.Utils.addEvent(this.firstSlider,"mouseover",function(ev){self.setElementState(self.firstSlider,"active");self.setElementState(self.secondSlider,"inactive");});Zapatec.Utils.addEvent(this.firstSlider,"mouseout",function(ev){if(self.firstSlider.dragObj.dragging||self.secondSlider.dragObj.dragging){return;}self.setElementState(self.firstSlider,"inactive");});Zapatec.Utils.addEvent(this.firstSlider,"mousemove",function(ev){if(self.config.dual){var pos1=Zapatec.Utils.getPos(self.firstSlider,self.scaleBg);var pos2=Zapatec.Utils.getPos(self.secondSlider,self.scaleBg);if(self.config.orientation=="V"){var diff=pos2.y-pos1.y;var size=self.firstSlider.offsetHeight;var mouse=ev.layerY||ev.offsetY}else{var diff=pos2.x-pos1.x;var size=self.firstSlider.offsetWidth;var mouse=ev.layerX||ev.offsetX}if(diff<size){var whole=diff+size;if(mouse>whole/2){self.setElementState(self.firstSlider,"inactive");self.setElementState(self.secondSlider,"active");}}}});Zapatec.Utils.addEvent(this.secondSlider,"mouseover",function(ev){self.setElementState(self.secondSlider,"active");self.setElementState(self.firstSlider,"inactive");});Zapatec.Utils.addEvent(this.secondSlider,"mouseout",function(ev){if(self.firstSlider.dragObj.dragging||self.secondSlider.dragObj.dragging){return;}self.setElementState(self.secondSlider,"inactive");});Zapatec.Utils.addEvent(this.secondSlider,"mousemove",function(ev){if(self.config.dual){var pos1=Zapatec.Utils.getPos(self.firstSlider,self.scaleBg);var pos2=Zapatec.Utils.getPos(self.secondSlider,self.scaleBg);if(self.config.orientation=="V"){var diff=pos2.y-pos1.y;var size=self.secondSlider.offsetHeight;var mouse=ev.layerY||ev.offsetY}else{var diff=pos2.x-pos1.x;var size=self.secondSlider.offsetWidth;var mouse=ev.layerX||ev.offsetX}if(diff<size){var whole=size-diff;if(mouse<whole/2){self.setElementState(self.secondSlider,"inactive");self.setElementState(self.firstSlider,"active");}}}});this.config.parent.appendChild(this.container);this.reconfig(true);this.changeState("ready");return true;};Zapatec.Slider.prototype.setDefaultState=function(){};Zapatec.Slider.prototype.setScaleLength=function(length){var rescale=false,pos=null;if(!this.fireOnState("ready",function(){this.setScaleLength(length);})){return;}rescale=Boolean(typeof this.tmp.rangePiece=="undefined");if(this.config.orientation=="V"){Zapatec.Utils.setHeight(this.scaleBg,length+Zapatec.Utils.getHeight(this.firstSlider));}else{Zapatec.Utils.setWidth(this.scaleBg,length+Zapatec.Utils.getWidth(this.firstSlider));}this.config.length=length;this._calcRangePiece();if(rescale){pos=this.getPos();this.fireEvent("onChange",pos.first,pos.second);}};Zapatec.Slider.prototype.setRange=function(iRangeLeft,iRangeRight){var pos=null;if(!this.fireOnState("ready",function(){this.setRange(iRangeLeft,iRangeRight);})){return;}if(this.config.range[0]!=iRangeLeft||this.config.range[1]!=iRangeRight){pos=this.getPos();this.config.range=[iRangeLeft,iRangeRight];this._calcRangePiece();if(pos.first<iRangeLeft){pos.first=iRangeLeft;}if(pos.second>iRangeRight){pos.second=iRangeRight;}this.setPos(pos.first,pos.second);}};Zapatec.Slider.prototype.setPos=function(first,second){var realSecond=realFirst=0,x1=x2=y1=y2=0;if(!this.fireOnState("ready",function(){this.setPos(first,second);})){return;}if(!this.config.dual){second=null;}if((second||second===0)&&first>second){return false;}if(first>this.config.range[1]||first<this.config.range[0]){return false;}if(second&&(second>this.config.range[1]||(second<this.config.range[0]))){return false;}this.pos1=first;this.pos2=second;realFirst=Math.round((first-this.config.range[0])*(this.config.length/(this.config.range[1]-this.config.range[0])));if(second||second===0){realSecond=Math.round((second-this.config.range[0])*(this.config.length/(this.config.range[1]-this.config.range[0])));if(realSecond===0){return false;}if(realSecond>this.con

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -