您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么使用JavaScript實(shí)現(xiàn)隨機(jī)顏色生成器”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么使用JavaScript實(shí)現(xiàn)隨機(jī)顏色生成器”吧!
目錄結(jié)構(gòu)如下:
我使用了以下的 HTML 和 CSS 代碼創(chuàng)建了這個(gè)顏色生成器的基本結(jié)構(gòu)。在添加所有信息的頁(yè)面上創(chuàng)建了一個(gè)小框,框的背景顏色為白色。
<div class="container"> </div>
*{ padding: 0; margin: 0; box-sizing: border-box; border: none; outline: none; font-family: sans-serif; } body{ background-color: #0574c8; } .container{ background-color: white; width: 60vmin; padding: 2.5em 1.1em; position: absolute; transform: translate(-50%,-50%); top: 50%; left: 50%; font-size: 3vmin; border-radius: 10px; }
現(xiàn)在,我們使用 HTML 的 h2 標(biāo)簽在此框中添加一個(gè)標(biāo)題來(lái)增強(qiáng)一下美感,并在 CSS 的幫助下進(jìn)行了設(shè)計(jì)。
<h2>Color Generator</h2>
.container h2{ font-size: 27px; text-align: center; margin-top: -20px; color: #09599a; margin-bottom: 20px; }
HTML 和 CSS 代碼有助于創(chuàng)建顯示,顯示器基本上是通過(guò)產(chǎn)生顏色來(lái)觀看的。每當(dāng)你點(diǎn)擊生成按鈕時(shí),都可以在此顯示中看到顏色。它的寬度為 100%,高度為 30vmin,并用了箱形陰影來(lái)增強(qiáng)美感。
<div id="output-color"> <span></span> </div>
#output-color{ position: relative; height: 30vmin; width: 100%; box-shadow: 0 0 20px rgba(0,139,253,0.25); border: 2px solid #ffffff; margin: auto; display: grid; margin-bottom: 15px; place-items: center; } #output-color span{ display: block; width: 100%; height: 100%; }
我們使用下面的 CSS 添加一種動(dòng)畫(huà),只要在顯示器中可以看到這種顏色,就會(huì)出現(xiàn)一種動(dòng)畫(huà)。
.show-color{ animation: pop 0.8s; } @keyframes pop{ 0%{ transform: scale(0); } 100%{ transform: scale(1); } }
現(xiàn)在我們創(chuàng)建一個(gè)小盒子,可以看到這個(gè)生成顏色的代碼。
<input type="text" id="output" readonly>
input[type="text"]{ width: 100%; background-color: transparent; box-shadow: 0 0 20px rgba(0,139,253,0.65); font-size: 1.3em; padding: 0.3em 0; margin: 1em 0; border-radius: 5px; color: #000000; text-align: center; } input[type="text"]::-moz-selection{ background: transparent; } input[type="text"]::selection{ background: transparent; }
現(xiàn)在創(chuàng)建兩個(gè)按鈕來(lái)生成顏色和復(fù)制顏色,按鈕的寬度為 120 像素,高度取決于填充。
<div class="btns"> <button id="gen-btn">Generate</button> <button id="copy-btn">Copy</button> </div>
.btns{ display: flex; margin-top: 15px; justify-content: space-around; } .btns button{ font-size: 1.03em; padding: 0.8em 1.7em; border-radius: 7px; width: 120px; font-weight: 600; cursor: pointer; }
以下 CSS 代碼有助于為兩個(gè)按鈕添加不同的背景顏色。第一個(gè)按鈕外殼添加了藍(lán)色,第二種添加了紅色,你也可以根據(jù)自己的喜好更改背景顏色。
#gen-btn{ background-color: #205e94; color: #ffffff; } #copy-btn{ background-color: #d23332; color: #ffffff; }
上面我們已經(jīng)設(shè)計(jì)了這個(gè)項(xiàng)目的基礎(chǔ)結(jié)構(gòu),現(xiàn)在是使用 JavaScript 實(shí)現(xiàn)它的時(shí)候了。
首先我一一設(shè)置了兩個(gè)按鈕的顏色顯示、顏色代碼和ID功能。
let outputColor = document.querySelector("#output-color span"); let output = document.getElementById("output"); let genBtn = document.getElementById("gen-btn"); let copyBtn = document.getElementById("copy-btn");
然后我使用了 HexString。它是一個(gè)二進(jìn)制值,相互結(jié)合形成顏色。接著我們把所有的顏色字符加在一起,之后我們將通過(guò)使用 JavaScript 隨機(jī)添加來(lái)創(chuàng)建漂亮的顏色。
let hexString = "0123456789abcdef";
現(xiàn)在我們已經(jīng)完成了生成顏色的工作,數(shù)學(xué)隨機(jī)有助于創(chuàng)建隨機(jī)顏色,這是非常簡(jiǎn)單的 JavaScript。如果你了解了基本的 JavaScript 就可以輕松地理解它。
let genHexCode = () => { let hexCode = "#"; for( i = 0; i < 6; i++){ hexCode += hexString[Math.floor(Math.random() * hexString.length)]; } output.value = hexCode; outputColor.classList.remove("show-color"); setTimeout( () => { outputColor.classList.add("show-color"); },10); outputColor.style.backgroundColor = hexCode; }
現(xiàn)在我已經(jīng)激活了復(fù)制按鈕。此按鈕將幫助我們復(fù)制將在上面創(chuàng)建的顏色代碼。
copyBtn.addEventListener("click", () => { output.select(); document.execCommand("copy"); })
現(xiàn)在我們也已經(jīng)激活了生成按鈕,創(chuàng)建一個(gè)系統(tǒng)來(lái)生成顏色,現(xiàn)在我們指示實(shí)施該 genHexCode 系統(tǒng)。只要單擊“生成”按鈕,該系統(tǒng)就會(huì)工作,這將創(chuàng)建顏色并且可以在顯示器中看到。
window.onload = genHexCode; genBtn.addEventListener("click", genHexCode);
感謝各位的閱讀,以上就是“怎么使用JavaScript實(shí)現(xiàn)隨機(jī)顏色生成器”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么使用JavaScript實(shí)現(xiàn)隨機(jī)顏色生成器這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。