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

📄 mootools-1.2-core.js.svn-base

📁 自己找的mootools中文文档
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
			case 'opacity': return this.get('opacity');			case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';		}		property = property.camelCase();		var result = this.style[property];		if (!$chk(result)){			result = [];			for (var style in Element.ShortStyles){				if (property != style) continue;				for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));				return result.join(' ');			}			result = this.getComputedStyle(property);		}		if (result){			result = String(result);			var color = result.match(/rgba?\([\d\s,]+\)/);			if (color) result = result.replace(color[0], color[0].rgbToHex());		}		if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result)))){			if (property.test(/^(height|width)$/)){				var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;				values.each(function(value){					size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();				}, this);				return this['offset' + property.capitalize()] - size + 'px';			}			if (Browser.Engine.presto && String(result).test('px')) return result;			if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';		}		return result;	},	setStyles: function(styles){		for (var style in styles) this.setStyle(style, styles[style]);		return this;	},	getStyles: function(){		var result = {};		Array.each(arguments, function(key){			result[key] = this.getStyle(key);		}, this);		return result;	}});Element.Styles = new Hash({	left: '@px', top: '@px', bottom: '@px', right: '@px',	width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',	backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',	fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',	margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',	borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',	zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'});Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};['Top', 'Right', 'Bottom', 'Left'].each(function(direction){	var Short = Element.ShortStyles;	var All = Element.Styles;	['margin', 'padding'].each(function(style){		var sd = style + direction;		Short[style][sd] = All[sd] = '@px';	});	var bd = 'border' + direction;	Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';	var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';	Short[bd] = {};	Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';	Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';	Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';});/*Script: Element.Dimensions.js	Contains methods to work with size, scroll, or positioning of Elements and the window object.License:	MIT-style license.Credits:	- Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).	- Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).*/(function(){Element.implement({	scrollTo: function(x, y){		if (isBody(this)){			this.getWindow().scrollTo(x, y);		} else {			this.scrollLeft = x;			this.scrollTop = y;		}		return this;	},	getSize: function(){		if (isBody(this)) return this.getWindow().getSize();		return {x: this.offsetWidth, y: this.offsetHeight};	},	getScrollSize: function(){		if (isBody(this)) return this.getWindow().getScrollSize();		return {x: this.scrollWidth, y: this.scrollHeight};	},	getScroll: function(){		if (isBody(this)) return this.getWindow().getScroll();		return {x: this.scrollLeft, y: this.scrollTop};	},	getScrolls: function(){		var element = this, position = {x: 0, y: 0};		while (element && !isBody(element)){			position.x += element.scrollLeft;			position.y += element.scrollTop;			element = element.parentNode;		}		return position;	},		getOffsetParent: function(){		var element = this;		if (isBody(element)) return null; 		if (!Browser.Engine.trident) return element.offsetParent;		while ((element = element.parentNode) && !isBody(element)){ 			if (styleString(element, 'position') != 'static') return element;		} 		return null;	},	getOffsets: function(){		var element = this, position = {x: 0, y: 0};		if (isBody(this)) return position;		while (element && !isBody(element)){			position.x += element.offsetLeft;			position.y += element.offsetTop;			if (Browser.Engine.gecko){				if (!borderBox(element)){					position.x += leftBorder(element);					position.y += topBorder(element);				}				var parent = element.parentNode;				if (parent && styleString(parent, 'overflow') != 'visible'){					position.x += leftBorder(parent);					position.y += topBorder(parent);				}			} else if (element != this && (Browser.Engine.trident || Browser.Engine.webkit)){				position.x += leftBorder(element);				position.y += topBorder(element);			}			element = element.offsetParent;			if (Browser.Engine.trident){				while (element && !element.currentStyle.hasLayout) element = element.offsetParent;			}		}		if (Browser.Engine.gecko && !borderBox(this)){			position.x -= leftBorder(this);			position.y -= topBorder(this);		}		return position;	},	getPosition: function(relative){		if (isBody(this)) return {x: 0, y: 0};		var offset = this.getOffsets(), scroll = this.getScrolls();		var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};		var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};		return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};	},	getCoordinates: function(element){		if (isBody(this)) return this.getWindow().getCoordinates();		var position = this.getPosition(element), size = this.getSize();		var obj = {left: position.x, top: position.y, width: size.x, height: size.y};		obj.right = obj.left + obj.width;		obj.bottom = obj.top + obj.height;		return obj;	},	computePosition: function(obj){		return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};	},	position: function(obj){		return this.setStyles(this.computePosition(obj));	}});Native.implement([Document, Window], {	getSize: function(){		var win = this.getWindow();		if (Browser.Engine.presto || Browser.Engine.webkit) return {x: win.innerWidth, y: win.innerHeight};		var doc = getCompatElement(this);		return {x: doc.clientWidth, y: doc.clientHeight};	},	getScroll: function(){		var win = this.getWindow();		var doc = getCompatElement(this);		return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};	},	getScrollSize: function(){		var doc = getCompatElement(this);		var min = this.getSize();		return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};	},	getPosition: function(){		return {x: 0, y: 0};	},	getCoordinates: function(){		var size = this.getSize();		return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};	}});// private methodsvar styleString = Element.getComputedStyle;function styleNumber(element, style){	return styleString(element, style).toInt() || 0;};function borderBox(element){	return styleString(element, '-moz-box-sizing') == 'border-box';};function topBorder(element){	return styleNumber(element, 'border-top-width');};function leftBorder(element){	return styleNumber(element, 'border-left-width');};function isBody(element){	return (/^(?:body|html)$/i).test(element.tagName);};function getCompatElement(element){	var doc = element.getDocument();	return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;};})();//aliasesNative.implement([Window, Document, Element], {	getHeight: function(){		return this.getSize().y;	},	getWidth: function(){		return this.getSize().x;	},	getScrollTop: function(){		return this.getScroll().y;	},	getScrollLeft: function(){		return this.getScroll().x;	},	getScrollHeight: function(){		return this.getScrollSize().y;	},	getScrollWidth: function(){		return this.getScrollSize().x;	},	getTop: function(){		return this.getPosition().y;	},	getLeft: function(){		return this.getPosition().x;	}});/*Script: Selectors.js	Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.License:	MIT-style license.*/Native.implement([Document, Element], {		getElements: function(expression, nocash){		expression = expression.split(',');		var items, local = {};		for (var i = 0, l = expression.length; i < l; i++){			var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);			if (i != 0 && elements.item) elements = $A(elements);			items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);		}		return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});	}	});Element.implement({		match: function(selector){		if (!selector) return true;		var tagid = Selectors.Utils.parseTagAndID(selector);		var tag = tagid[0], id = tagid[1];		if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;		var parsed = Selectors.Utils.parseSelector(selector);		return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;	}	});var Selectors = {Cache: {nth: {}, parsed: {}}};Selectors.RegExps = {	id: (/#([\w-]+)/),	tag: (/^(\w+|\*)/),	quick: (/^(\w+|\*)$/),	splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),	combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils = {		chk: function(item, uniques){		if (!uniques) return true;		var uid = $uid(item);		if (!uniques[uid]) return uniques[uid] = true;		return false;	},		parseNthArgument: function(argument){		if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];		var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);		if (!parsed) return false;		var inta = parseInt(parsed[1]);		var a = (inta || inta === 0) ? inta : 1;		var special = parsed[2] || false;		var b = parseInt(parsed[3]) || 0;		if (a != 0){			b--;			while (b < 1) b += a;			while (b >= a) b -= a;		} else {			a = b;			special = 'index';		}		switch (special){			case 'n': parsed = {a: a, b: b, special: 'n'}; break;			case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;			case 'even': parsed =  {a: 2, b: 1, special: 'n'}; break;			case 'first': parsed = {a: 0, special: 'index'}; break;			case 'last': parsed = {special: 'last-child'}; break;			case 'only': parsed = {special: 'only-child'}; break;			default: parsed = {a: (a - 1), special: 'index'};		}				return Selectors.Cache.nth[argument] = parsed;	},		parseSelector: function(selector){		if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];		var m, parsed = {classes: [], pseudos: [], attributes: []};		while ((m = Selectors.RegExps.combined.exec(selector))){			var cn = m[1], an = m[2], ao = m[3], av = m[4], pn = m[5], pa = m[6];			if (cn){				parsed.classes.push(cn);			} else if (pn){				var parser = Selectors.Pseudo.get(pn);				if (parser) parsed.pseudos.push({parser: parser, argument: pa});				else parsed.attributes.push({name: pn, operator: '=', value: pa});			} else if (an){				parsed.attributes.push({name: an, operator: ao, value: av});			}		}		if (!parsed.classes.length) delete parsed.classes;		if (!parsed.attributes.length) delete parsed.attributes;		if (!parsed.pseudos.length) delete parsed.pseudos;		if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;		return Selectors.Cache.parsed[selector] = parsed;	},		parseTagAndID: function(selector){		var tag = selector.match(Selectors.RegExps.tag);		var id = selector.match(Selectors.RegExps.id);		return [(tag) ? tag[1] : '*', (id) ? id[1] : false];	},		filter: function(item, parsed, local){		var i;		if (parsed.classes){			for (i = parsed.classes.length; i--; i){				var cn = parsed.classes[i];				if (!Selectors.Filters.byClass(item, cn)) return false;			}		}		if (parsed.attributes){			for (i = parsed.attributes.length; i--; i){				var att = parsed.attributes[i];				if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;			}		}		if (parsed.pseudos){			for (i = parsed.pseudos.length; i--; i){				var psd = parsed.pseudos[i];				if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;			}		}		return true;	},		getByTagAndID: function(ctx, tag, id){		if (id){			var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);			return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];		} else {			return ctx.getElementsByTagName(tag);		}	},		search: function(self, expression, local){		var splitters = [];				var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){			splitters.push(m1);			return ':)' + m2;		}).split(':)');				var items, match, filtered, item;				for (var i = 0, l = selectors.length; i < l; i++){						var selector = selectors[i];						if (i == 0 && Selectors.RegExps.quick.test(selector)){				items = self.getElementsByTagName(selector);				continue;			}						var splitter = splitters[i - 1];						var tagid = Selectors.Utils.parseTagAndID(selector);			var tag = tagid[0], id = tagid[1];			if (i == 0){				items = Selectors.Utils.getByTagAndID(self, tag, id);			} else {				var uniques = {}, found = [];				for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);				items = found;			}						var parsed = Selectors.Utils.parseSelector(selector);						if (parsed){				filtered = [];				for (var m = 0, n = items.length; m < n; m++){					item = items[m];					if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);				}				items = filtered;			}					}				return items;			}	};Selectors.Getters = {		' ': function(found, self, tag, id, uniques){		var items = Selectors.Utils.getByTagAndID(self, tag, id);		for (var i = 0, l = items.length; i < l; i++){			var item = items[i];			if (Selectors.Utils.chk(ite

⌨️ 快捷键说明

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