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.