89 lines
2.1 KiB
JavaScript
89 lines
2.1 KiB
JavaScript
(function () {
|
|
|
|
var _ = Flotr._;
|
|
|
|
Flotr.DOM = {
|
|
addClass: function(element, name){
|
|
var classList = (element.className ? element.className : '');
|
|
if (_.include(classList.split(/\s+/g), name)) return;
|
|
element.className = (classList ? classList + ' ' : '') + name;
|
|
},
|
|
/**
|
|
* Create an element.
|
|
*/
|
|
create: function(tag){
|
|
return document.createElement(tag);
|
|
},
|
|
node: function(html) {
|
|
var div = Flotr.DOM.create('div'), n;
|
|
div.innerHTML = html;
|
|
n = div.children[0];
|
|
div.innerHTML = '';
|
|
return n;
|
|
},
|
|
/**
|
|
* Remove all children.
|
|
*/
|
|
empty: function(element){
|
|
element.innerHTML = '';
|
|
/*
|
|
if (!element) return;
|
|
_.each(element.childNodes, function (e) {
|
|
Flotr.DOM.empty(e);
|
|
element.removeChild(e);
|
|
});
|
|
*/
|
|
},
|
|
hide: function(element){
|
|
Flotr.DOM.setStyles(element, {display:'none'});
|
|
},
|
|
/**
|
|
* Insert a child.
|
|
* @param {Element} element
|
|
* @param {Element|String} Element or string to be appended.
|
|
*/
|
|
insert: function(element, child){
|
|
if(_.isString(child))
|
|
element.innerHTML += child;
|
|
else if (_.isElement(child))
|
|
element.appendChild(child);
|
|
},
|
|
// @TODO find xbrowser implementation
|
|
opacity: function(element, opacity) {
|
|
element.style.opacity = opacity;
|
|
},
|
|
position: function(element, p){
|
|
if (!element.offsetParent)
|
|
return {left: (element.offsetLeft || 0), top: (element.offsetTop || 0)};
|
|
|
|
p = this.position(element.offsetParent);
|
|
p.left += element.offsetLeft;
|
|
p.top += element.offsetTop;
|
|
return p;
|
|
},
|
|
removeClass: function(element, name) {
|
|
var classList = (element.className ? element.className : '');
|
|
element.className = _.filter(classList.split(/\s+/g), function (c) {
|
|
if (c != name) return true; }
|
|
).join(' ');
|
|
},
|
|
setStyles: function(element, o) {
|
|
_.each(o, function (value, key) {
|
|
element.style[key] = value;
|
|
});
|
|
},
|
|
show: function(element){
|
|
Flotr.DOM.setStyles(element, {display:''});
|
|
},
|
|
/**
|
|
* Return element size.
|
|
*/
|
|
size: function(element){
|
|
return {
|
|
height : element.offsetHeight,
|
|
width : element.offsetWidth };
|
|
}
|
|
};
|
|
|
|
})();
|