封装 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)}}
