Files
eruda/eustia/evalCss.js
2018-06-12 22:19:56 +08:00

48 lines
986 B
JavaScript

/* Eval css.
*/
_('toStr each filter');
var styleList = [],
scale = 1;
function exports(css) {
css = toStr(css);
for (var i = 0, len = styleList.length; i < len; i++) {
if (styleList[i].css === css) return;
}
let container = exports.container || document.head,
el = document.createElement('style');
el.type = 'text/css';
container.appendChild(el);
let style = { css, el, container };
resetStyle(style);
styleList.push(style);
return style;
}
exports.setScale = function(s) {
scale = s;
each(styleList, style => resetStyle(style));
};
exports.clear = function() {
each(styleList, ({ container, el }) => container.removeChild(el));
styleList = [];
};
exports.remove = function(style) {
styleList = filter(styleList, s => s !== style);
style.container.removeChild(style.el);
};
function resetStyle({ css, el }) {
el.innerText = css.replace(/(\d+)px/g, ($0, $1) => +$1 * scale + 'px');
}