文档章节

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

 秀才也疯狂
发布于 2017/07/20 16:54
字数 261
阅读 84
收藏 1
//获取非行间样式
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, ' ');
    }
}

© 著作权归作者所有

粉丝 1
博文 34
码字总数 4711
作品 0
私信 提问
2019年应该如何学习前端开发?

近两年来,前端开发工程师越来越火了,2019年已经到来了,很多准备入行前端开发工程师的小伙伴们,不知道准备得怎么样了呢? 有的朋友在想方设法的学习,争取在年后的金三银四能靠实力找到一...

WEB开发阿靖
02/16
0
0
从零开始学 Web 之 jQuery(一)jQuery的概念,页面加载事件

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN...

fengdaoting
2018/07/04
0
0
前端基础-JavaScript

开发工具与关键技术:DW/浏览器 ;简单使用js。 作者:刘佳明 撰写时间:2019年1月 18 日 前面已经随手写过了关于网页编辑的一些基础布局和标签的认识;这篇文章在这里为大家简单的介绍一下关...

没有,
01/18
0
0
好程序员web前端培训分享学习JavaScript

好程序员web前端培训分享学习JavaScript,我试着总结自己学习JavaScript的方法 JavaScript给人那种感觉的原因多半是因为它如下的特点: 1、本身知识很抽象、晦涩难懂,如:闭包、内置对象、D...

好程序员IT
04/09
8
0
[杭州]阿里巴巴旗下聚划算招web前端开发工程师

前端开发工程师: 岗位描述: 1. 负责聚划算网站应用前端开发,与后台工程师协作,完成数据交互、动态信息展现; 2. 使用JS或AS编写封装良好的前端交互组件,维护及优化网站前端页面性能; ...

刘恣意
2011/12/02
746
5

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
27分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
29分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
31分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
37分钟前
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部