js-封裝幾個常用函數


//	編寫一個函數,功能判斷任意一個數是否是素數,如果是素數返回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 ); //獲取數組中最小值的下標
	    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM