if (!elem || elem == d) { return undefined;
} if (cssProperty == 'opacity' && elem.filters) { var opacity = (MochiKit.Style.getStyle(elem, 'filter') || '').match(/alpha\(opacity=(.*)\)/); if (opacity && opacity[1]) { return parseFloat(opacity[1]) / 100;
} return 1.0;
} var value = elem.style ? elem.style[cssProperty] : null; if (!value) { if (d.defaultView && d.defaultView.getComputedStyle) { var css = d.defaultView.getComputedStyle(elem, null);
cssProperty = cssProperty.replace(/([A-Z])/g, '-$1'
).toLowerCase(); // from dojo.style.toSelectorCase
value = css ? css.getPropertyValue(cssProperty) : null;
} elseif (elem.currentStyle) {
value = elem.currentStyle[cssProperty];
}
} if (cssProperty == 'opacity') {
value = parseFloat(value);
}
if (/Opera/.test(navigator.userAgent) && (MochiKit.Base.find(['left', 'top', 'right', 'bottom'], cssProperty) != -1)) { if (MochiKit.Style.getStyle(elem, 'position') == 'static') {
value = 'auto';
}
}
return value == 'auto' ? null : value;
},
/** @id MochiKit.Style.setStyle */
setStyle: function (elem, style) {
elem = MochiKit.DOM.getElement(elem); for (var name in style) { if (name == 'opacity') {
MochiKit.Style.setOpacity(elem, style[name]);
} else {
elem.style[MochiKit.Base.camelize(name)] = style[name];
}
}
},
/** @id MochiKit.Style.setOpacity */
setOpacity: function (elem, o) {
elem = MochiKit.DOM.getElement(elem); var self = MochiKit.Style; if (o == 1) { var toSet = /Gecko/.test(navigator.userAgent) && !(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));
elem.style["opacity"] = toSet ? 0.999999 : 1.0; if (/MSIE/.test(navigator.userAgent)) {
elem.style['filter'] =
self.getStyle(elem, 'filter').replace(/alpha\([^\)]*\)/gi, '');
}
} else { if (o < 0.00001) {
o = 0;
}
elem.style["opacity"] = o; if (/MSIE/.test(navigator.userAgent)) {
elem.style['filter'] =
self.getStyle(elem, 'filter').replace(/alpha\([^\)]*\)/gi, '') + 'alpha(opacity=' + o * 100 + ')';
}
}
},
/*
getElementPosition is adapted from YAHOO.util.Dom.getXY v0.9.0. Copyright: Copyright (c) 2006, Yahoo! Inc. All rights reserved. License: BSD, http://developer.yahoo.net/yui/license.txt
*/
/** @id MochiKit.Style.getElementPosition */
getElementPosition: function (elem, /* optional */relativeTo) { var self = MochiKit.Style; var dom = MochiKit.DOM;
elem = dom.getElement(elem);
while (parent) { var tagName = parent.tagName.toUpperCase(); if (tagName === 'BODY' || tagName === 'HTML') { break;
} var disp = self.getStyle(parent, 'display'); // Handle strange Opera bug for some display if (disp != 'inline' && disp != 'table-row') {
c.x -= parent.scrollLeft;
c.y -= parent.scrollTop;
} if (parent.parentNode) {
parent = parent.parentNode;
} else {
parent = null;
}
}
return c;
},
/** @id MochiKit.Style.setElementPosition */
setElementPosition: function (elem, newPos/* optional */, units) {
elem = MochiKit.DOM.getElement(elem); if (typeof(units) == 'undefined') {
units = 'px';
} var newStyle = {}; var isUndefNull = MochiKit.Base.isUndefinedOrNull; if (!isUndefNull(newPos.x)) {
newStyle['left'] = newPos.x + units;
} if (!isUndefNull(newPos.y)) {
newStyle['top'] = newPos.y + units;
}
MochiKit.DOM.updateNodeAttributes(elem, {'style': newStyle});
},
/** @id MochiKit.Style.getElementDimensions */
getElementDimensions: function (elem) { var self = MochiKit.Style; var dom = MochiKit.DOM; if (typeof(elem.w) == 'number' || typeof(elem.h) == 'number') { returnnew self.Dimensions(elem.w || 0, elem.h || 0);
}
elem = dom.getElement(elem); if (!elem) { return undefined;
} var disp = self.getStyle(elem, 'display'); // display can be empty/undefined on WebKit/KHTML if (disp != 'none' && disp !== '' && typeof(disp) != 'undefined') { returnnew self.Dimensions(elem.offsetWidth || 0,
elem.offsetHeight || 0);
} var s = elem.style; var originalVisibility = s.visibility; var originalPosition = s.position;
s.visibility = 'hidden';
s.position = 'absolute';
s.display = ''; var originalWidth = elem.offsetWidth; var originalHeight = elem.offsetHeight;
s.display = 'none';
s.position = originalPosition;
s.visibility = originalVisibility; returnnew self.Dimensions(originalWidth, originalHeight);
},
/** @id MochiKit.Style.setElementDimensions */
setElementDimensions: function (elem, newSize/* optional */, units) {
elem = MochiKit.DOM.getElement(elem); if (typeof(units) == 'undefined') {
units = 'px';
} var newStyle = {}; var isUndefNull = MochiKit.Base.isUndefinedOrNull; if (!isUndefNull(newSize.w)) {
newStyle['width'] = newSize.w + units;
} if (!isUndefNull(newSize.h)) {
newStyle['height'] = newSize.h + units;
}
MochiKit.DOM.updateNodeAttributes(elem, {'style': newStyle});
},
/** @id MochiKit.Style.setDisplayForElement */
setDisplayForElement: function (display, element/*, ...*/) { var elements = MochiKit.Base.extend(null, arguments, 1); var getElement = MochiKit.DOM.getElement; for (var i = 0; i < elements.length; i++) {
element = getElement(elements[i]); if (element) {
element.style.display = display;
}
}
},
/** @id MochiKit.Style.getViewportDimensions */
getViewportDimensions: function () { var d = new MochiKit.Style.Dimensions();
var w = MochiKit.DOM._window; var b = MochiKit.DOM._document.body;
/** @id MochiKit.Style.getViewportPosition */
getViewportPosition: function () { var c = new MochiKit.Style.Coordinates(0, 0); var d = MochiKit.DOM._document; var de = d.documentElement; var db = d.body; if (de && (de.scrollTop || de.scrollLeft)) {
c.x = de.scrollLeft;
c.y = de.scrollTop;
} elseif (db) {
c.x = db.scrollLeft;
c.y = db.scrollTop;
} return c;
},
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.