美文网首页
js常用函数封装

js常用函数封装

作者: lovinglili | 来源:发表于2018-12-10 11:38 被阅读0次

common

function randomColor(){
var R = randomInt(0,255);
var G = randomInt(0,255);
var B = randomInt(0,255);
return "rgb("+R+","+G+","+B+")";
}

function randomInt(min, max){
return Math.floor(Math.random()*(max-min)) + min;
}

function textNodefilter(nodelist){
var temp = [];
for(var i=0; i<nodelist.length; i++){
    if(nodelist[i].nodeType == 1){
        temp.push(nodelist[i]);
    }
}
return temp;
}

function getStyle(ele){
if(ele.currentStyle) {
    return ele.currentStyle;
} else {
    return getComputedStyle(ele);
} 
}

function toArray(arr){
var a = [];
for(var i = 0; i<arr.length; i++){
    a.push(arr[i]);
}
return a;
}

function log(){
if(console && console.log){
    console.log(arguments);
} else {
    alert(arguments);
}
}

//计算一个dom元素的PageX/Y
function getPagePosition(target){
var sumLeft = target.offsetLeft;
var sumTop = target.offsetTop;
while(target.offsetParent != null){
    sumLeft += target.offsetParent.offsetLeft;
    sumTop += target.offsetParent.offsetTop;
    
    target = target.offsetParent;
 }
return {
    pageX : sumLeft,
    pageY : sumTop
};
}

//封装事件监听的添加
function addEventHandler(ele, eventType, fn, isCapture){
if(ele.addEventListener) {
    ele.addEventListener(eventType, fn, isCapture);
} else {
    ele.attachEvent("on"+eventType, fn);
}
}

//限定一个数字的大小范围
function section(val, min, max) {
return Math.max(min, Math.min(max, val));
}

function hide(ele) {
ele.style.display = "none";
}
function show(ele) {
ele.style.display = "block";
}

(function(){
if(!document.getElementsByClassName){
    document.getElementsByClassName = function(classname){
        var allEle = document.getElementsByTagName("*");
        var temp = [];
        for(var i=0; i<allEle.length; i++){
            if( allEle[i].className.indexOf(classname) != -1){
                temp.push( allEle[i] );
            }
        }
        return temp;
    }
}
})();

dateUtile(现在经常使用moment.sjs)

//判断某年份是否为闰年
function isLeapYear(year){
    return year%4==0 && year%100!=0 || year%400==0;
}


//将日期格式化输出 “2015-08-24”
function date2string(date, sep){
    var sep = sep || "-";
    
    var m = date.getMonth()+1;
    var d = date.getDate();
    return date.getFullYear()+sep+ (m<10?"0"+m:m) + sep+ (d<10?"0"+d:d);
}

date2string(new Date())

//获得某个月份的天数
function getDaysByMonth(month, year){
    year = year || new Date().getFullYear();
    
    if(!month || typeof month != "number" ) {
        console.error("参数必须为数字类型!");
        return;
    } 
    if( !(month > 0 && month < 13) ){
        console.error("月份必须在1-12之间");
        return;
    }
    month = Math.round(month);
    
    switch(month) {
        case 1 : 
        case 3 :
        case 5 :
        case 7 :
        case 8 :
        case 10 :
        case 12 : return 31;
        case 2 : return (isLeapYear(year) ? 29 : 28);
        case 4 :
        case 6 :
        case 9 :
        case 11 : return 30;
    }
}


//将字符串转换为日期
function string2Date(datestr, sep){
    
    if( !sep || !(datestr && datestr.length >= 8) ){
        console.error("字符串格式错误!不能解析");
        return;
    }
    
    var list = datestr.split(sep);
    if( !(list[0].length==4 && list[1]>0&&list[1]<13 && list[2]>0 && list[2]<32) ){
        console.error("字符串格式错误!不能解析");
        return;
    }
    return new Date(datestr);
}


//判断两个日期相差的天数
function getDaysBetweenMonths(d1, d2){
    if( !(d1 instanceof Date && d2 instanceof Date) ){
        console.error("参数传错了!重来!");
        return;
    }
    var dis = Math.abs(d1.getTime() - d2.getTime());
    return (dis/1000/3600/24).toFixed(2);
}


//获得N天以后的日期(string/date)
function getAfterDay(n){
    var now = new Date();
    now.setDate( now.getDate()+n );
    return date2string(now);
}

相关文章

  • JS封装常用函数

    转化成驼峰标识符 格式化查询字符串 随机点名

  • js常用函数封装

    common dateUtile(现在经常使用moment.sjs)

  • 常用js函数封装

    1、输入一个值,返回其数据类型** functiontype(para){returnObject.prototy...

  • vue axios cdn 封装

    1.config.js 常用域名封装: 2.utils.js 常用的方法封装: 3.api.js axios接口...

  • js常用的函数(封装)

    //获取当前日期时间 //获取当前设备的逻辑宽度和高度 //获取当前页面的名称 //设置本地缓存//修改人:zho...

  • 总结js常用函数和常用技巧

    学习过程中总结的干货,包括常用函数、常用js技巧、常用正则表达式等。 Ajax封装 使用方法: 后台响应Ajax ...

  • js 原生ajax的封装

    概念 ajax是前端常用技术,今天用原生js封装了一个ajax函数,类似于jquery库的$.ajax()函数,大...

  • 移动端左侧滑动原生js

    js入口函数 封装方法

  • css工程

    命名方案: 预处理: 后处理: CSS IN JS:将一些常用的 CSS 属性封装成函数,使用 JavaScrip...

  • js jquery的区别

    1. JS / JQuery介绍 Jquery是JS库,何为JS库,即把常用的js方法进行封装,封装到单独的JS文...

网友评论

      本文标题:js常用函数封装

      本文链接:https://www.haomeiwen.com/subject/sqdrhqtx.html