前端开发JS篇--常用封装函数

//获取非行间样式
function getStyle(obj, attr) {
    if (obj.currentStyle) {
        return obj.currentStyle[attr];
    } else {
        return getComputedStyle(obj, false)[attr];
    }
}


//固定范围内的随机整数
function rnd(n, m) {
    return parseInt(n + Math.random() * (m - n));
}

//数组的排序
arr.sort(function (n1, n2) {
    return n2 - n1;//从大到小
})

//获取class类名
function getByClass(oParent, sClass) {
    if (oParent.getElementsByClassName)
        return oParent.getElementsByClassName(sClass);
    var aEle = oParent.getElementsByTagName('*');
    var result = [];
    for (var i = 0; i < aEle.length; i++) {
        var arr = aEle[i].className.split(' ');//['box', 'bbox']
        for (var j = 0; j < arr.length; j++) {
            if (arr[j] == sClass) {
                result.push(aEle[i]);
                break;
            }
        }
    }
    return result;
}

/////getPos
function getPos(obj) {
    var l = t = 0;
    while (obj) {
        l += obj.offsetLeft;
        t += obj.offsetTop;
        obj = obj.offsetParent;
    }
    ;
    return {left: l, top: t};
};

//去前后空格
function trim(str) {

    if (str && typeof str === "string") {
        return str.replace(/(^\s+)|(\s+$)/g, "");
    }
};

//  toggleClass
function toggleClass(obj, sClass) {
    if (hasClass(obj, sClass)) {
        //删
        removeClass(obj, sClass);
    } else {
        //加
        addClass(obj, sClass);
    }
}

// hasClass
function hasClass(obj, sClass) {
    var re = new RegExp('\\b' + sClass + '\\b');
    return re.test(obj.className);
}

// removeClass
function removeClass(obj, sClass) {
    var re = new RegExp('\\b' + sClass + '\\b');
    if (re.test(obj.className)) {
        obj.className = obj.className.replace(re, '').replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ');
    }
}

///addClass
function addClass(obj, sClass) {
    //obj.className=sClass;	×
    var re = new RegExp('\\b' + sClass + '\\b');
    if (!re.test(obj.className)) {//没有
        //加
        if (obj.className) {//本来就有其他的class
            obj.className = obj.className + ' ' + sClass;
        } else {
            obj.className = sClass;
        }
        obj.className = obj.className.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ');
    }
}

转载于:https://my.oschina.net/u/3470166/blog/1476523

你可能感兴趣的:(前端开发JS篇--常用封装函数)