封装 getCss、setCss、setGroupCss、css方法
1.getCss
function getCss(curEle, attr) {
let val = null;
if ('getComputedStyle' in window) {
val = getComputedStyle(curEle)[attr];
} else {
val = curEle.currentStyle[attr];
}
let reg = /^(width|height|padding|margin|left|right|top|bottom|fontSize|opacity)$/;
if (reg.test(attr)) {
val = parseFloat(val);
}
return val;
}
2.setCss
function setCss(curEle, attr, value)
let reg=/^(width|height|padding|margin|left|right|top|bottom|fontSize)$/;
if (reg.test(attr)) {
if (typeof value === 'number') {
value = value + 'px';
}
}
curEle.style[attr] = value;
}
3.setGroupCss
function setGroupCss(curEle, obj) {
// 对象有几个键值对就调用几次setCss方法,
for (var key in obj) {
setCss(curEle, key, obj[key])
}
}
4.css
function css(){
let [curEle,attr,value] = arguments;
// 如果传参的个数是2,那就说明不是获取样式就是批量设置样式
if(arguments.length === 2){
// 如果第二个参的数据类型是字符串,那就是获取样式
if(typeof attr === 'string'){
// 如果第二个参数是字符串,说明是获取样式
return getCss(curEle,attr)
}
else {
setGroupCss(curEle,attr)
}
}
// 如果传递的参数是3个,那就是单个设置样式
else if(arguments.length === 3){
setCss(curEle,attr,value)
}
}