首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个.random类添加到没有重复的多个div中

将多个.random类添加到没有重复的多个div中
EN

Stack Overflow用户
提问于 2017-10-29 08:36:09
回答 2查看 229关注 0票数 1

尝试向两个类(.left & .right)添加一个随机类,但是使用两个随机div的规则不能同时出现

JS:

代码语言:javascript
复制
$(document).ready(function(){
var classes = ['random-1','random-2', 'random-3']; //add as many classes as u want
var randomnumber = Math.floor(Math.random()*classes.length);

$('.left').addClass(classes[randomnumber]);
});

HTML:

代码语言:javascript
复制
<div class="left">
  Left
</div>

<div class="right">
  Right
</div>


.left {
  background: blue;
  height: 100vh;
  width: 50%;
  float: left;
  position: relative;
}
.right {
  background: red;
  height: 100vh;
  width: 50%;
  float: right;
}

  .random-1 {
     background: orange;
  }
  .random-2 {
     background: yellow;
  }
  .random-3 {
     background: pink;
  }
  .random-4 {
     background: green;
  }
  .random-5 {
     background: blueviolet;
  }

理想的结果是

代码语言:javascript
复制
<div class="left random-1">
  Left
</div>

<div class="right random-4">
  Right
</div>

https://codepen.io/anon/pen/OOJaqL

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-29 08:48:00

您可以使用while循环来迭代,直到选择了两个随机和唯一的类。

代码语言:javascript
复制
function getRandomClass() {

    let classes = ['random-1','random-2', 'random-3'];
    let index = Math.floor(Math.random() * classes.length);

    return classes[index];
}

$(document).ready(function() {

    let leftClass = null;
    let rightClass = null;

    while (leftClass == rightClass) {
        leftClass = randomClass();
        rightClass = randomClass();
    }

    $('.left').addClass(leftClass);
    $('.right').addClass(rightClass);
});
票数 2
EN

Stack Overflow用户

发布于 2017-10-29 08:51:06

只有当右div没有这个类时,才将.random-*类添加到左div。

代码语言:javascript
复制
var rightHasClass = $('.right').hasClass(classes[randomnumber]);    
if( ! rightHasClass){
    $('.left').addClass(classes[randomnumber]);
}

var leftHasClass = $('.left').hasClass(classes[randomnumber]);
if( ! leftHasClass){
    $('.right').addClass(classes[randomnumber]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46998278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档