vimo-dt
Version:
A Vue2.x UI Project For Mobile & HyBrid
56 lines (49 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getStyle = getStyle;
exports.getStyleNum = getStyleNum;
exports.setStyle = setStyle;
exports.getSize = getSize;
var _type = require('./type');
function getStyle(el, styleName) {
return el.style[styleName] ? el.style[styleName] : el.currentStyle ? el.currentStyle[styleName] : window.getComputedStyle(el, null)[styleName];
}
function getStyleNum(el, styleName) {
return parseInt(getStyle(el, styleName).replace(/px|pt|em/gi, ''));
}
function setStyle(el, obj) {
if ((0, _type.isObject)(obj)) {
for (var s in obj) {
var cssArrt = s.split('-');
for (var i = 1; i < cssArrt.length; i++) {
cssArrt[i] = cssArrt[i].replace(cssArrt[i].charAt(0), cssArrt[i].charAt(0).toUpperCase());
}
var cssArrtnew = cssArrt.join('');
el.style[cssArrtnew] = obj[s];
}
} else if ((0, _type.isString)(obj)) {
el.style.cssText = obj;
}
}
function getSize(el) {
if (getStyle(el, 'display') !== 'none') {
return {
width: el.offsetWidth || getStyleNum(el, 'width'),
height: el.offsetHeight || getStyleNum(el, 'height')
};
}
var addCss = { display: '', position: 'absolute', visibility: 'hidden' };
var oldCss = {};
for (var i in addCss) {
oldCss[i] = getStyle(el, i);
}
setStyle(el, addCss);
var width = el.clientWidth || getStyleNum(el, 'width');
var height = el.clientHeight || getStyleNum(el, 'height');
for (var _i in oldCss) {
setStyle(el, oldCss);
}
return { width: width, height: height };
}