每次刷新随机交换三种颜色

时间:2016-03-22 15:19:41

标签: javascript jquery html css

我有三种不同颜色的课程。 如何在每次访问页面时随机交换background-colors

Fiddle

.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)]);

但我不希望两种颜色相同。

1 个答案:

答案 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>