GT2/GT2-iOS/node_modules/art/modes/svg/node.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-02-12 17:26:06 +00:00
var Class = require('../../core/class');
var Transform = require('../../core/transform');
var Element = require('../../dom/shadow');
var DOM = require('./dom');
module.exports = Class(Element, Transform, {
initialize: function(tag){
this.uid = DOM.uniqueID();
var element = this.element = DOM.createElement(tag);
element.setAttribute('id', 'e' + this.uid);
},
// transforms
_transform: function(){
var m = this;
this.element.setAttribute('transform', 'matrix(' + [m.xx, m.yx, m.xy, m.yy, m.x, m.y] + ')');
},
blend: function(opacity){
this.element.setAttribute('opacity', opacity);
return this;
},
// visibility
hide: function(){
this.element.setAttribute('display', 'none');
return this;
},
show: function(){
this.element.setAttribute('display', '');
return this;
},
// interaction
indicate: function(cursor, tooltip){
var element = this.element;
if (cursor) this.element.style.cursor = cursor;
if (tooltip){
var title = this.titleElement;
if (title){
title.firstChild.nodeValue = tooltip;
} else {
this.titleElement = title = DOM.createElement('title');
title.appendChild(DOM.createTextNode(tooltip));
element.insertBefore(title, element.firstChild);
}
}
return this;
}
});