tools

/*
------------------------------------------------------
|
|           增加 删除 检查 元素的class
|      elem 需要操作的元素  cls class
|
------------------------------------------------------
*/

// 检查
export const hasClass = (elem, cls) =>{
    cls = cls || ''
    if (cls.replace(/\s/g, '').length === 0) return false
    return new RegExp(' ' + cls + ' ').test(' ' + elem.className + ' ')
}

// 增加    
export const addClass = (elem, cls) => {
    if (!hasClass(elem, cls)) {
        elem.className = elem.className === '' ? cls : elem.className + ' ' + cls
    }
}

// 删除    
export const removeClass = (elem, cls) =>{
    if (hasClass(elem, cls)) {
        var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, '') + ' '
        while (newClass.indexOf(' ' + cls + ' ') >= 0) {
            newClass = newClass.replace(' ' + cls + ' ', ' ')
        }
        elem.className = newClass.replace(/^\s+|\s+$/g, '')
    }
}



/*
------------------------------------------------------
|
|        注册事件
|   obj 事件元素  type 事件类型  fn触发函数
|
------------------------------------------------------
*/

export const addEvent = (obj,type,fn) =>{
    if(obj.attachEvent){ //ie
        obj.attachEvent('on'+type,() => {
            fn.call(obj);
        })
    }else{
        obj.addEventListener(type,fn,false);
    }
}


/*
-----------------------------------------------------
|
|       获取滚动条距离浏览器顶部的距离
|   
-----------------------------------------------------
*/
export const getScrollTop = () => {  
    let scrollPos;  
    if (window.pageYOffset) {  
        scrollPos = window.pageYOffset
    }else if (document.compatMode && document.compatMode !== 'BackCompat'){ 
        scrollPos = document.documentElement.scrollTop
    }else if (document.body) { 
        scrollPos = document.body.scrollTop
    }   
    return scrollPos 
} 


/*
-----------------------------------------------------
|
|       获取body的高度
| 
-----------------------------------------------------
*/

export const getBodyHeight = () => {
    return document.documentElement.clientHeight || document.body.clientHeight || window.clientHeight
}

 

posted @ 2018-08-10 16:17  大厨的笔记  阅读(226)  评论(0编辑  收藏  举报