import _ from 'lodash';const dom = { // 获取浏览器视口高度 getViewPortHeight() { let e = window; let a = 'inner'; if(!('innerHeight' in window)) { a = 'client'; e = document.documentElement || document.body; } return e[`${a}Height`]; }, /** 获取DOM节点的某个css属性的最终值 @auther @params {HTMLElement} ele DOM节点元素 @params {String} css 需要获取的css属性值 @return {String} */ getCssStyle(ele, css) { return window.getComputedStyle(ele, null).getPropertyValue(css); }, /** 查找某个DOM元素上是否存在该类名 @auther @params {HTMLElement} ele DOM节点元素 @params {String} cls 类名 */ hasClass(elem, cls) { return elem.className.indexOf(cls) > -1; } /** 给DOM元素添加一个CSS class @auther @params {HTMLElement} ele DOM节点元素 @params {String} className 类名 */ addClass(elem, cls) { const ele = elem; if(!dom.hasClass(ele, cls)) { const oldCls = ele.className; ele.className = _.isEmpty(oldCls) ? cls : `${oldCls} ${cls}`; } } /** 删除DOM元素某个class类名 @auther @params {HTMLElement} elem 需要查找的DOM元素 @params {String} cls 类名 */ removeClass(elem, cls) { const ele = elem; if(dom.hasClass(ele, cls)) { const oldCls = ` ${ele.className} `; const newCls = oldCls.replace(` ${cls} `, ' '); ele.className = newCls.trim(); } } /** 给DOM元素添加自定义属性 @param {HTMLElemetn} ele DOM圆度 @param {String} key属性的键 @param {*} value 属性的值 */ setAttribute(ele, key, value) { ele.setAttribute(key, value); }; // 获取DOM元素的自定义属性 getAttribute(ele, key) { return ele.getAttribute(key); } /** 给DOM元素设置style 属性 @param {HTMLElemetn} ele DOM圆度 @param {String} prop属性的名称 @param {*} value 属性的值 */ setStyle(ele, prop, value) { const tempEle = ele; if(ele) { tempEle.style[prop] = value; } } // 页面回到顶部,一般切换分页的时候会需要 scrollToTop() { window.scrollTo(0, 0); }};export default dom;