我有三种不同颜色的课程。
如何在每次访问页面时随机交换background-colors
?
.projects{background:#99c6c3;}
.other-things{background:#d3d3d3;}
.about {background:#eedd8d;}
我尝试使用这个js:
var bgcolorlist=new Array("#99c6c3", "#d3d3d3", "#eedd8d")
$(".projects").css("background-color",bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)]);
但我不希望两种颜色相同。
答案 0 :(得分:1)
<强> Updated fiddle 强>
您可以从bgcolorlist
中选择随机颜色,然后使用splice()
将其删除,以便下次不会选择它:
var bgcolorlist=new Array("#99c6c3", "#d3d3d3", "#eedd8d");
var elements=new Array(".projects", ".about", ".other-things");
for(var i=0;i<elements.length;i++){
var random = Math.floor(Math.random()*bgcolorlist.length);
$(elements[i]).css("background-color",bgcolorlist[random]);
bgcolorlist.splice(random, 1); //remove selected color from array
}
body {font-size:21px; font-family:arial;}
.projects{text-align:center; line-height:100vh;background:#99c6c3; overflow-x: hidden;width: 33%;float:left; height: 100vh;}
.other-things{text-align:center; line-height:100vh;background:#d3d3d3;overflow-x: hidden;width: 33%;float:left; height: 100vh;}
.about {text-align:center; line-height:100vh;background: #eedd8d; overflow-x: hidden;width: 33%;float:left; height: 100vh;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="projects">ONE</div>
<div class="other-things">TWO</div>
<div class="about">THREE</div>