封装函数

170 阅读2分钟

// 编写一个函数,功能判断任意一个数是否是素数,如果是素数返回true 否则返回false function isPrimerNumber( m ){ //判断m是否是素数 //如果是素数 在2--(m-1)区间内 没有能够被m整除的数 for( var i = 2 ; i < m ; i++ ){ if( !(m%i) ){ //不是素数 能够被整除 return false;//不是素数 } } //循环结束后 上面没有满足条件的i 说明m是素数 return true; } /* 随机数 参数: n:起始数字 m:范围

/ function numRandom(n,m){ if( n>m ){ return parseInt(m+Math.random()(n-m+1)); //return Math.round( Math.random()(n-m)+m ) }else{ return parseInt(n+Math.random()(m-n+1)); //return Math.round( Math.random()*(m-n)+n )

}

} /* 判断一个字符串的内容是不是纯数字

*/ function fn(str){ if(str %1 == 0){ console.log("纯数字"); }else{ console.log("不是纯数字"); } }

function typeNum(n){

if(typeof Number(n) == "number" && !Number.isNaN(n)){
    alert("纯数字")
}else{
    alert("非纯数字")
}

}

/*
   
  根据id获取元素
   
 */

function $id(id){ return document.getElementById(id); }

/*
   
  创建一个元素
   
 */

function createEle(ele){ return document.createElement(ele); }

/*

  获取六位十六进制随机颜色值
  

*/

function getColor(){ var str = "0123456789abcdef"; var color = "#";//存储颜色值 for( var i = 1 ; i <= 6 ; i++ ){ color += str.charAt( numRandom(0,15) ); } return color; }

//方法二
 

function getColor2(){ return "rgb("+numRandom(0,255)+","+numRandom(0,255)+","+numRandom(0,255)+")"; } //document.body.style.backgroundColor = getColor(); /*

 封装一个函数 功能是 将日期转成字符串 显示自定义的时间格式
   

*/ function dateToString(d){ var y = d.getFullYear(); var m =toTwo( d.getMonth() + 1 ); var d1 =toTwo( d.getDate() );

var h = toTwo( d.getHours() );
var mi =toTwo(  d.getMinutes() );
var s = toTwo( d.getSeconds() );
 
return y+"-"+m+"-"+d1+" "+h+":"+mi+":"+s;

}

//如果str小于10 前面拼接一个0 function toTwo(str){ return str < 10 ? "0" + str : str; }

/*

 2、随机获取六位验证码     验证码由大写字母 或小写字母 或  数字组成

*/ function yanNum(){ str = []; for( var i = 1;i <= 4; i++ ){ var ma = numRandom(122,48); if( ma >= 48 && ma <= 57 || ma >= 65 && ma <= 90 || ma >= 97 && ma <= 122 ){ var st = String.fromCharCode(ma); str.push(st); }else{ i--; } } return str
}

// [23,1,45,6,7,89,90] //冒泡排序:相邻的两个数进行比较 大数下沉 小数上浮 // 如果前一个数比后一个大 就交换

function fnSort( arr ){
    var t = 0;
    for( var i = 0 ; i < arr.length - 1 ; i++ ){//n个数比较了几趟
        for( var j = 0 ; j < arr.length-1-i ; j++ ){//控制每趟循环比较了几次
            if( arr[j] > arr[j+1] ){
                t = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = t;
            }
        }
    }
    return arr;
}
//alert( fnSort( [12,562,23,67,7,8,9,5] ) );
/*
 i  j
 0  5 
 1  4
 2  3
 3  2
 j<= 5-i
 */
 
 
//选择排序 :
//思路:每一趟比较时  依次取出数组中的某个数和后面的数比较
//如果该数大于 后面的数 就交换
function fnSort( arr ){
    var t;
    //arr[0]
    for( var i = 0 ; i < arr.length - 1 ; i++ ){
        for( var j = i+1 ; j < arr.length ; j++ ){
            if( arr[i] > arr[j] ){
                t = arr[i];
                arr[i] = arr[j];
                arr[j] = t;
            }
        }
    }
    return arr;
}
 
//alert( fnSort( [89,12,7,67,2] ) );



          

/*

        封装一个碰撞函数
                                

*/ function pz(obj1,obj2){ var L1 = obj1.offsetLeft; var R1 = obj1.offsetLeft + obj1.offsetWidth; var T1 = obj1.offsetTop; var B1 = obj1.offsetTop + obj1.offsetHeight; var L2 = obj2.offsetLeft; var R2 = obj2.offsetLeft + obj2.offsetWidth; var T2 = obj2.offsetTop; var B2 = obj2.offsetTop + obj2.offsetHeight; if( R1<L2 || L1>R2 || T1>B2 || T2>B1 ){ //碰不上 return false; }else{ return true; } }

/*

 dom高级操作运动
  

*/ //json参数中 存储多个属性attr和目标值target function startMove(obj,json,callback){ clearInterval( obj.timer );//为了防止频繁操作按钮时 运动加速的问题 obj.timer = setInterval( () => { var flag = true;//假设循环结束后 值为true 表示所有动作都结束了 可以停止定时器了 for( var attr in json ){ //获取当前运动元素的实际样式值 (非行内样式 getComputedStyle) var current = 0; if( attr == "opacity" ){ current = getStyle( obj , attr ) * 100; }else{ current = parseInt( getStyle( obj , attr ) ); } var speed = (json[attr] - current)/10; speed = speed > 0 ? Math.ceil( speed ) : Math.floor( speed ); if( current != json[attr] ){//说明运动没有结束 flag = false; }

        //运动没有结束 需要继续设置该元素的样式
        if( attr == "opacity" ){
            obj.style[attr] = (current + speed)/100;
        }else if( attr == "zIndex" ){
            obj.style[attr] = json[attr];//直接达到目标值就可以
        }else{
            obj.style[attr] = current + speed + "px";
        }
    }
    //例
    /*d4.onmouseover = function(){
        startMove( this , { left : 350 , top : 300 } ,function(){
            startMove( d4 , { opacity : 30 } , function (){
                startMove( d4 ,{ width : 300 , height:400 } );
            })
        } );
    }*/
     
    //循环结束后 判断 flag的值是否为 true
    if( flag ){
        clearInterval( obj.timer );
        //上一个动作完成了 就进入到下一个动作 可变的动作
        if( callback ){
            callback();//调用下一个功能
        }
    }
} , 30 )

}

/*

 封装一个函数  功能是获取任意一个元素非行内样式值
  

*/ function getStyle(obj,attr){ //兼容 if( getComputedStyle ){ return window.getComputedStyle(obj)[attr]; }else{ return obj.currentStyle[attr]; } }

//函数功能:获取数组最小值下标

    this.getMinHeightIndex = function(){
        var min = Math.min.apply( null,this.hArr );//获取数组的最小值
        return this.hArr.indexOf( min ); //获取数组中最小值的下标
    }