1. import _ from 'lodash';
    2. const dom = {
    3. // 获取浏览器视口高度
    4. getViewPortHeight() {
    5. let e = window;
    6. let a = 'inner';
    7. if(!('innerHeight' in window)) {
    8. a = 'client';
    9. e = document.documentElement || document.body;
    10. }
    11. return e[`${a}Height`];
    12. },
    13. /**
    14. 获取DOM节点的某个css属性的最终值
    15. @auther
    16. @params {HTMLElement} ele DOM节点元素
    17. @params {String} css 需要获取的css属性值
    18. @return {String}
    19. */
    20. getCssStyle(ele, css) {
    21. return window.getComputedStyle(ele, null).getPropertyValue(css);
    22. },
    23. /**
    24. 查找某个DOM元素上是否存在该类名
    25. @auther
    26. @params {HTMLElement} ele DOM节点元素
    27. @params {String} cls 类名
    28. */
    29. hasClass(elem, cls) {
    30. return elem.className.indexOf(cls) > -1;
    31. }
    32. /**
    33. 给DOM元素添加一个CSS class
    34. @auther
    35. @params {HTMLElement} ele DOM节点元素
    36. @params {String} className 类名
    37. */
    38. addClass(elem, cls) {
    39. const ele = elem;
    40. if(!dom.hasClass(ele, cls)) {
    41. const oldCls = ele.className;
    42. ele.className = _.isEmpty(oldCls) ? cls : `${oldCls} ${cls}`;
    43. }
    44. }
    45. /**
    46. 删除DOM元素某个class类名
    47. @auther
    48. @params {HTMLElement} elem 需要查找的DOM元素
    49. @params {String} cls 类名
    50. */
    51. removeClass(elem, cls) {
    52. const ele = elem;
    53. if(dom.hasClass(ele, cls)) {
    54. const oldCls = ` ${ele.className} `;
    55. const newCls = oldCls.replace(` ${cls} `, ' ');
    56. ele.className = newCls.trim();
    57. }
    58. }
    59. /**
    60. 给DOM元素添加自定义属性
    61. @param {HTMLElemetn} ele DOM圆度
    62. @param {String} key属性的键
    63. @param {*} value 属性的值
    64. */
    65. setAttribute(ele, key, value) {
    66. ele.setAttribute(key, value);
    67. };
    68. // 获取DOM元素的自定义属性
    69. getAttribute(ele, key) {
    70. return ele.getAttribute(key);
    71. }
    72. /**
    73. 给DOM元素设置style 属性
    74. @param {HTMLElemetn} ele DOM圆度
    75. @param {String} prop属性的名称
    76. @param {*} value 属性的值
    77. */
    78. setStyle(ele, prop, value) {
    79. const tempEle = ele;
    80. if(ele) {
    81. tempEle.style[prop] = value;
    82. }
    83. }
    84. // 页面回到顶部,一般切换分页的时候会需要
    85. scrollToTop() {
    86. window.scrollTo(0, 0);
    87. }
    88. };
    89. export default dom;