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

📄 moo.fx.js

📁 介绍无线可视门铃系统原理
💻 JS
📖 第 1 页 / 共 4 页
字号:
		return queryString.join('&');	}});var Drag = {};Drag.Base = new Class({	setOptions: function(options){		this.options = Object.extend({			handle: false,			unit: 'px', 			onStart: Class.empty, 			onComplete: Class.empty, 			onDrag: Class.empty,			xMax: false,			xMin: false,			yMax: false,			yMin: false		}, options || {});	},	initialize: function(el, xModifier, yModifier, options){		this.setOptions(options);		this.element = $(el);		this.handle = $(this.options.handle) || this.element;		if (xModifier) this.xp = xModifier.camelCase();		if (yModifier) this.yp = yModifier.camelCase();		this.handle.onmousedown = this.start.bind(this);	},	start: function(evt){		evt = evt || window.event;		this.startX = evt.clientX;		this.startY = evt.clientY;			this.handleX = this.startX - this.handle.getLeft();		this.handleY = this.startY - this.handle.getTop();			this.set(evt);		this.options.onStart.pass(this.element, this).delay(10);		document.onmousemove = this.drag.bind(this);		document.onmouseup = this.end.bind(this);		return false;	},	addStyles: function(x, y){		if (this.xp){			var stylex = this.element.getStyle(this.xp).toInt();				var movex = function(val){				this.element.setStyle(this.xp, val+this.options.unit);			}.bind(this);				if (this.options.xMax && stylex >= this.options.xMax){				if (this.clientX <= this.handleX+this.handle.getLeft()) movex(stylex+x);				if (stylex > this.options.xMax) movex(this.options.xMax);			} else if(this.options.xMin && stylex <= this.options.xMin){				if (this.clientX >= this.handleX+this.handle.getLeft()) movex(stylex+x);				if (stylex < this.options.xMin) movex(this.options.xMin);			} else movex(stylex+x);		}		if (this.yp){			var styley = this.element.getStyle(this.yp).toInt();			var movey = function(val){				this.element.setStyle(this.yp, val+this.options.unit);			}.bind(this);			if (this.options.yMax && styley >= this.options.yMax){				if (this.clientY <= this.handleY+this.handle.getTop()) movey(styley+y);				if (styley > this.options.yMax) movey(this.options.yMax);			} else if(this.options.yMin && styley <= this.options.yMin){				if (this.clientY >= this.handleY+this.handle.getTop()) movey(styley+y);				if (styley < this.options.yMin) movey(this.options.yMin);			} else movey(styley+y);		}	},	drag: function(evt){		evt = evt || window.event;		this.clientX = evt.clientX;		this.clientY = evt.clientY;		this.options.onDrag.pass(this.element, this).delay(5);		this.addStyles((this.clientX-this.lastMouseX), (this.clientY-this.lastMouseY));		this.set(evt);		return false;	},	set: function(evt){		this.lastMouseX = evt.clientX;		this.lastMouseY = evt.clientY;		return false;	},	end: function(){		document.onmousemove = null;		document.onmouseup = null;		this.options.onComplete.pass(this.element, this).delay(10);	}});Drag.Move = Drag.Base.extend({	extendOptions: function(options){		this.options = Object.extend(this.options || {}, Object.extend({			onSnap: Class.empty,			droppables: [],			snapDistance: 8,			snap: true,			xModifier: 'left',			yModifier: 'top',			container: false		}, options || {}));	},	initialize: function(el, options){		this.extendOptions(options);		this.container = $(this.options.container);		this.parent(el, this.options.xModifier, this.options.yModifier, this.options);	},	start: function(evt){		if (this.options.container) {			var cont = $(this.options.container).getPosition();			Object.extend(this.options, {				xMax: cont.right-this.element.offsetWidth,				xMin: cont.left,				yMax: cont.bottom-this.element.offsetHeight,				yMin: cont.top			});		}		this.parent(evt);		if (this.options.snap) document.onmousemove = this.checkAndDrag.bind(this);		return false;	},	drag: function(evt){		this.parent(evt);		this.options.droppables.each(function(drop){			if (this.checkAgainst(drop)){				if (drop.onOver && !drop.dropping) drop.onOver.pass([this.element, this], drop).delay(10);				drop.dropping = true;			} else {				if (drop.onLeave && drop.dropping) drop.onLeave.pass([this.element, this], drop).delay(10);				drop.dropping = false;			}		}, this);		return false;	},	checkAndDrag: function(evt){		evt = evt || window.event;		var distance = Math.round(Math.sqrt(Math.pow(evt.clientX - this.startX, 2)+Math.pow(evt.clientY - this.startY, 2)));		if (distance > this.options.snapDistance){			this.set(evt);			this.options.onSnap.pass(this.element, this).delay(10);			document.onmousemove = this.drag.bind(this);			this.addStyles(-(this.startX-evt.clientX), -(this.startY-evt.clientY));		}		return false;	},	checkAgainst: function(el){		x = this.clientX+Window.getScrollLeft();		y = this.clientY+Window.getScrollTop();		var el = $(el).getPosition();		return (x > el.left && x < el.right && y < el.bottom && y > el.top);	},	end: function(){		this.parent();		this.options.droppables.each(function(drop){			if (drop.onDrop && this.checkAgainst(drop)) drop.onDrop.pass([this.element, this], drop).delay(10);		}, this);	}});Element.extend({	makeDraggable: function(options){		return new Drag.Move(this, options);	},	makeResizable: function(options){		return new Drag.Base(this, 'width', 'height', options);	},	getPosition: function(){		var obj = {};		obj.width = this.offsetWidth;		obj.height = this.offsetHeight;		obj.left = this.getLeft();		obj.top = this.getTop();		obj.right = obj.left + obj.width;		obj.bottom = obj.top + obj.height;		return obj;	}});var Window = {	disableImageCache: function(){		if (window.ActiveXObject) document.execCommand("BackgroundImageCache", false, true);	},	extend: Object.extend,	getWidth: function(){		return window.innerWidth || document.documentElement.clientWidth || 0;	},	getHeight: function(){		return window.innerHeight || document.documentElement.clientHeight || 0;	},	getScrollHeight: function(){		return document.documentElement.scrollHeight;	},	getScrollWidth: function(){		return document.documentElement.scrollWidth;	},	getScrollTop: function(){		return document.documentElement.scrollTop || window.pageYOffset || 0;	},	getScrollLeft: function(){		return document.documentElement.scrollLeft || window.pageXOffset || 0;	},	onDomReady: function(init){		var state = document.readyState;		if (state && document.childNodes && !document.all && !navigator.taintEnabled){ //khtml			if (state.test(/loaded|complete/)) return init();			else return Window.onDomReady.pass(init).delay(100);		} else if (state && window.ActiveXObject){ //ie			var script = $('_ie_ready_');			if (!script) document.write("<script id='_ie_ready_' defer='true' src='://'></script>");			$('_ie_ready_').addEvent('readystatechange', function(){				if (this.readyState == 'complete') init();			});			return;		} else { //others			var myInit = function() {				if (arguments.callee.done) return;				arguments.callee.done = true;				init();			};			window.addEvent("load", myInit);			document.addEvent("DOMContentLoaded", myInit);		}	}};var Cookie = {	set: function(key, value, duration){		var date = new Date();		date.setTime(date.getTime()+((duration || 365)*86400000));		document.cookie = key+"="+value+"; expires="+date.toGMTString()+"; path=/";	},	get: function(key){		var myValue, myVal;		document.cookie.split(';').each(function(cookie){			if(myVal = cookie.trim().test(key+'=(.*)')) myValue = myVal[1];		});		return myValue;	},	remove: function(key){		this.set(key, '', -1);	}};var Json = {	toString: function(el){		var string = [];			var isArray = function(array){			var string = [];			array.each(function(ar){				string.push(Json.toString(ar));			});			return string.join(',');		};			var isObject = function(object){			var string = [];			for (var property in object) string.push('"'+property+'":'+Json.toString(object[property]));			return string.join(',');		};			switch($type(obj)){			case 'number': string.push(obj); break;			case 'string': string.push('"'+obj+'"'); break;			case 'function': string.push(obj); break;			case 'object': string.push('{'+isObject(obj)+'}'); break;			case 'array': string.push('['+isArray(obj)+']');		}			return string.join(',');	},	evaluate: function(str){		return eval('(' + str + ')');	}};var Sortables = new Class({	setOptions: function(options) {		this.options = {			handles: false,			fxDuration: 250,			fxTransition: Fx.Transitions.sineInOut,			maxOpacity: 0.5,			onComplete: Class.empty,			onStart: Class.empty,			contain: false		};		Object.extend(this.options, options || {});	},	initialize: function(elements, options){		this.setOptions(options);		this.options.handles = this.options.handles || elements;		var trash = new Element('div').injectInside($(document.body));		$A(elements).each(function(el, i){			var copy = $(el).clone().setStyles({				'position': 'absolute',				'opacity': '0',				'display': 'none'			}).injectInside(trash);			var elEffect = el.effect('opacity', {				duration: this.options.fxDuration,				wait: false,				transition: this.options.fxTransition			}).set(1);			var copyEffects = copy.effects({				duration: this.options.fxDuration,				wait: false,				transition: this.options.fxTransition,				onComplete: function(){					copy.setStyle('display', 'none');				}			});			var yMax = false;			var yMin = false;			if (this.options.contain){				yMax = $(el.parentNode).getTop()+el.parentNode.offsetHeight-el.offsetHeight;				yMin = el.parentNode.getTop();			}			var dragger = new Drag.Move(copy, {				handle: this.options.handles[i],				yMax: yMax,				yMin: yMin,				xModifier: false,				onStart: function(){					this.options.onStart.bind(this).delay(10);					copy.setHTML(el.innerHTML).setStyles({						'display': 'block',						'opacity': this.options.maxOpacity,						'top': el.getTop()+'px',						'left': el.getLeft()+'px'					});					elEffect.custom(elEffect.now, this.options.maxOpacity);				}.bind(this),				onComplete: function(){					this.options.onComplete.bind(this).delay(10);					copyEffects.custom({						'opacity': [this.options.maxOpacity, 0],						'top': [copy.getTop(), el.getTop()]					});					elEffect.custom(elEffect.now, 1);				}.bind(this),				onDrag: function(){					if (el.getPrevious() && copy.getTop() < (el.getPrevious().getTop())) el.injectBefore(el.getPrevious());					else if (el.getNext() && copy.getTop() > (el.getNext().getTop())) el.injectAfter(el.getNext());				}			});		}, this);	}});Fx.Scroll = Fx.Base.extend({	initialize: function(el, options) {		this.element = $(el);		this.setOptions(options);	},	down: function(){		return this.custom(this.element.scrollTop, this.element.scrollHeight-this.element.offsetHeight);	},	up: function(){		return this.custom(this.element.scrollTop, 0);	},	increase: function(){		this.element.scrollTop = this.now;	}});Fx.Slide = Fx.Base.extend({	initialize: function(el, options){		this.element = $(el);		this.wrapper = new Element('div').injectAfter(this.element).setStyle('overflow', 'hidden').adopt(this.element);		this.setOptions(options);		if (!this.options.mode) this.options.mode = 'vertical';		this.now = [];	},	setNow: function(){		[0,1].each(function(i){			this.now[i] = this.compute(this.from[i], this.to[i]);		}, this);	},	vertical: function(){		this.margin = 'top';		this.layout = 'height';		this.startPosition = [this.element.scrollHeight, '0'];		this.endPosition = ['0', -this.element.scrollHeight];		return this;	},	horizontal: function(){		this.margin = 'left';		this.layout = 'width';		this.startPosition = [this.element.scrollWidth, '0'];		this.endPosition = ['0', -this.element.scrollWidth];		return this;	},

⌨️ 快捷键说明

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