您好,登錄后才能下訂單哦!
本文實例為大家分享了js實現隨機div顏色位置的具體代碼,供大家參考,具體內容如下
效果如下:
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>MTX</title> <style> div{width: 50px;height: 50px;position: absolute;} </style> </head> <body> <!--//定義10個div,用于隨機div的屬性賦值--> <div id="div1"></div> <div id="div2"></div> <div id="div3"></div> <div id="div4"></div> <div id="div5"></div> <div id="div6"></div> <div id="div7"></div> <div id="div8"></div> <div id="div9"></div> <div id="div10"></div> <script> init();//入口函數 function init() { randomDiv();//初始的隨機 } setInterval(randomDiv,100);//函數名 毫秒——過多長時間運行一次這個函數 function randomDiv(){ for (var i=1;i<11;i++){//為定義的各個div塊一一設置隨機屬性 var divs=document.getElementById("div"+i);//divs作為每次循環的數據暫存 var point=divPosition();//point作為位置的數據暫存 cloneObj(divs.style,{ left:point.left, top:point.top, backgroundColor:divColor() }) } } function cloneObj(target,source){ for (var key in source){ target[key]=source[key]; } } //div位置隨機 function divPosition(elemWidth,elemHeight) { if(!elemWidth) elemWidth=50; if(!elemHeight) elemHeight=50; var left=Math.random()*(document.documentElement.clientWidth-elemWidth)+"px"; //屏幕寬度減去本來50ox寬度 的隨機與左面的距離 var top=Math.random()*(document.documentElement.clientHeight-elemHeight)+"px"; //屏幕高度減去本來50ox高度 的隨機與上面的距離 return {left:left,top:top};//返回 與左面的距離 與上面的距離 } //背景顏色隨機 function divColor() { var col="#";//這個字符串第一位為# 顏色的格式 for(var i=0;i<6;i++){ col+=parseInt(Math.random()*16).toString(16); //rondom*16后的隨機值即為0-1*16==0-16; toString(16)為轉化為16進制 } return col;//最后返回一個七位的值 格式即為#nnnnnn 顏色的格式 } </script> </body> </html>
總結:
這個小項目的實現主要是基于了Js中的隨機函數Math.random():
將此案例分為入口函數init(),主要在這個函數中加入了randomDiv()————隨機div這個函數。
randomDiv()函數中又由三大塊組成,分別為定義divs:即為這10個div塊進行一一的賦值做準備,在這個for循環中一一為divs代表的div塊賦予隨機函數給他們的隨機值。以及var定義的這兩個變量去取我們下面介紹的divColor、divPosition兩個函數中的值。
cloneObj()函數的作用是:
* 1、遍歷源對象中的所有關鍵字,關鍵字定義的變量是key 。
* 2、設置目標對象上面增加關鍵字key,并且設置該關鍵字的值是源對象該關鍵字的值 。
* 3、返回目標對象。
然后再說一下 divColor()函數,var col="#";定義這個col字符串用于存我們的顏色格式,下面的rondom()函數即為我們的顏色隨機賦值,利用到了16進制,最后返回一個七位的值 格式即為#nnnnnn 顏色的格式。
位置隨機函數為divPosition(elemWidth,elemHeight):
if(!elemWidth) elemWidth=50; if(!elemHeight) elemHeight=50;
這兩行的作用是將我們的初始div的高度寬度引入,以便我們在實現隨機位置的時候不會出現div塊超出我們瀏覽器窗口的情況。
document.documentElement.clientWidth-elemWidth 瀏覽器寬度-50
document.documentElement.clientHeight-elemHeight 瀏覽器高度-50
這兩局話即實現上述描述的這個過程。
最后返回 與左面的距離 與上面的距離。
setInterval(randomDiv,100);//函數名 毫秒——過多長時間運行一次這個函數。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。