diff options
author | wout <wout@impinc.co.uk> | 2014-07-11 23:36:17 +0200 |
---|---|---|
committer | wout <wout@impinc.co.uk> | 2014-07-11 23:36:17 +0200 |
commit | 462d2cd3738c904db0be7086878d1fcc17b79553 (patch) | |
tree | afabf22b2f46e5432dc0d56219872f590eb19892 /src/style.js | |
parent | 7cc2d3635b8ed513e0f4e5be0a1823c1a6ad93dc (diff) | |
download | svg.js-462d2cd3738c904db0be7086878d1fcc17b79553.tar.gz svg.js-462d2cd3738c904db0be7086878d1fcc17b79553.zip |
Completely reworked transform system
Diffstat (limited to 'src/style.js')
-rw-r--r-- | src/style.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/style.js b/src/style.js new file mode 100644 index 0000000..a7f737d --- /dev/null +++ b/src/style.js @@ -0,0 +1,33 @@ +SVG.extend(SVG.Element, { + // Dynamic style generator + style: function(s, v) { + if (arguments.length == 0) { + /* get full style */ + return this.node.style.cssText || '' + + } else if (arguments.length < 2) { + /* apply every style individually if an object is passed */ + if (typeof s == 'object') { + for (v in s) this.style(v, s[v]) + + } else if (SVG.regex.isCss.test(s)) { + /* parse css string */ + s = s.split(';') + + /* apply every definition individually */ + for (var i = 0; i < s.length; i++) { + v = s[i].split(':') + this.style(v[0].replace(/\s+/g, ''), v[1]) + } + } else { + /* act as a getter if the first and only argument is not an object */ + return this.node.style[camelCase(s)] + } + + } else { + this.node.style[camelCase(s)] = v === null || SVG.regex.isBlank.test(v) ? '' : v + } + + return this + } +})
\ No newline at end of file |