第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

連續(xù)隨機化每個div的顏色

連續(xù)隨機化每個div的顏色

HUWWW 2023-06-09 17:49:29
setInterval()我必須每秒使用并querySelectorAll()在單擊左上角的按鈕后隨機化網(wǎng)格容器內(nèi)每個 div 的顏色,并顯示 GIF 中看到的當(dāng)前時間。我知道顏色是隨機選擇的,實際上使用了 CSS rgba() 函數(shù)。這是我的 html 文件中的內(nèi)容:<!DOCTYPE html><html><head><style>.item1 { grid-area: header; }.item2 { grid-area: menu; }.item3 { grid-area: main; }.item4 { grid-area: right; }.item5 { grid-area: footer; }.grid-container {? display: grid;? grid-template-areas:? ? 'header header header header header header'? ? 'menu main main main right right'? ? 'menu footer footer footer footer footer';? grid-gap: 10px;? background-color: #2196F3;? padding: 10px;}.grid-container > div {? background-color: rgba(255, 255, 255, 0.8);? text-align: center;? padding: 20px 0;? font-size: 30px;}.flex-container {? display: flex;? background-color: DodgerBlue;}.flex-container > div {? background-color: #f1f1f1;? margin: 10px;? padding: 20px;? font-size: 30px;}</style><script>var r = Math.round(Math.random()*255);var g = Math.round(Math.random()*255);var b = Math.round(Math.random()*255);function changeColor(){? for (const elem of document.querySelectorAll('div')) {? ? r = Math.round(Math.random()*255);? ? g = Math.round(Math.random()*255);? ? b = Math.round(Math.random()*255);? ? elem.style.backgroundColor =? "rgb("+r+","+g+","+b+", 0.8)";? }? var myTimer = setInterval(changeColor, 1000);? var running = true;}</script></head><body><h1>Grid Layout</h1><p>This grid layout contains six columns and three rows:</p><div class="flex-container">? ? <button onclick="changeColor()">GO!</button>? ? <p id="timeinfo">TIME</p></div><div class="grid-container">? <div class="item1">Header</div>? <div class="item2">Menu</div>? <div class="item3">Main</div>??? <div class="item4">Right</div>? <div class="item5">Footer</div></div></body></html>我對此迷路了。任何見解將不勝感激。謝謝!
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

您需要從 changeColor() 函數(shù)中取出 setInterval() 函數(shù)。您正在為每個后續(xù)的 changeColor() 遞歸調(diào)用創(chuàng)建一個新的間隔,這就是導(dǎo)致速度加快直到我們變得癲癇的原因。加上其他人提到的更具體的選擇器('.grid-container > div')。這可能以反應(yīng)式風(fēng)格更好地完成,而不是每秒循環(huán)遍歷一組元素,但如果你剛剛接觸 html/js/css,這是一個非常好的小測試。我可能會做更多這樣的事情:


var r = Math.round(Math.random()*255);

var g = Math.round(Math.random()*255);

var b = Math.round(Math.random()*255);

var myTimer;


function startSwitching() {

  myTimer = setInterval(changeColor, 1000);

}


function stopSwitching() {

  clearInterval(myTimer);

}


function changeColor(){

  for (const elem of document.querySelectorAll('.grid-container > div')) {

    r = Math.round(Math.random()*255);

    g = Math.round(Math.random()*255);

    b = Math.round(Math.random()*255);

    elem.style.backgroundColor =  "rgb("+r+","+g+","+b+", 0.8)";

  }

}

您需要小心使用間隔并確保自己清理干凈,否則可能會使瀏覽器崩潰。另外,你并沒有真正問一個問題,所以不清楚你到底想改變什么。


查看完整回答
反對 回復(fù) 2023-06-09
?
呼啦一陣風(fēng)

TA貢獻1802條經(jīng)驗 獲得超6個贊

加入document.querySelectorAll('.grid-container > div')for循環(huán),這樣只有里面的divgrid-container才會變色。



查看完整回答
反對 回復(fù) 2023-06-09
?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

document.querySelectorAll('div')實際上返回一個元素列表。為了更改樣式,您需要遍歷元素。這是您可以執(zhí)行此操作的一種方法:


for (const elem of document.querySelectorAll('.grid-container > div')) {

    r = Math.round(Math.random()*255);

    g = Math.round(Math.random()*255);

    b = Math.round(Math.random()*255);

    elem.style.backgroundColor = "rgb("+r+","+g+","+b+")";

}


查看完整回答
反對 回復(fù) 2023-06-09
  • 3 回答
  • 0 關(guān)注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號