Leaflet/src/dom/DomUtil.js

50 lines
1.3 KiB
JavaScript
Raw Normal View History

/*
* L.DomUtil contains various utility functions for working with DOM
*/
L.DomUtil = {
2010-09-07 22:02:45 +08:00
get: function(id) {
return (typeof id == 'string' ? document.getElementById(id) : id);
},
2010-09-14 19:57:45 +08:00
getStyle: function(el, style) {
var value = el.style[style];
if ((typeof value == 'undefined') && el.currentStyle) {
value = el.currentStyle[style];
}
if (typeof value == 'undefined') {
var css = document.defaultView.getComputedStyle(el, null);
value = css ? css[style] : null;
}
return (value == 'auto' ? null : value);
},
getCumulativeOffset: function(el) {
var top = 0,
left = 0;
do {
top += (el.offsetTop - el.scrollTop) || 0;
left += el.offsetLeft || 0;
el = el.offsetParent;
} while (el);
return new L.Point(left, top);
},
TRANSLATE_OPEN: 'translate' + (L.Browser.webkit3d ? '3d(' : '('),
TRANSLATE_CLOSE: L.Browser.webkit3d ? ',0)' : ')',
2010-09-16 21:05:42 +08:00
setPosition: function(el, point) {
el._leaflet_pos = point;
if (L.Browser.webkit) {
el.style.webkitTransform = L.DomUtil.TRANSLATE_OPEN +
point.x + 'px,' + point.y + 'px' + L.DomUtil.TRANSLATE_CLOSE;
} else {
2010-09-14 19:57:45 +08:00
el.style.left = point.x + 'px';
el.style.top = point.y + 'px';
}
},
2010-09-16 21:05:42 +08:00
getPosition: function(el) {
return el._leaflet_pos;
}
};