jquery - 对背景和边框应用相同的随机颜色变化

标签 jquery

我有两个六边形 div。我通过一些 jQuery 搞乱了自己的方式来创建一个函数,该函数将从两种颜色中随机选择来决定 div 的背景颜色。问题是,我还希望六边形的顶部和底部边框更改为其主体的相应颜色。我正在使用 :before 和 :after 伪元素来创建我的六边形,但无法将我的函数应用于它们。任何帮助将不胜感激!

    $(document).ready(function() {
    var randomColors = ["#96281B","#F7CA18"];
    $(".hexagon").each(function(index) {
        var len = randomColors.length;
        var randomNum = Math.floor(Math.random()*len);
        $(this).css("backgroundColor",randomColors[randomNum]);
    });
});

这是一个 JSFiddle 来展示我已经拥有的内容:http://jsfiddle.net/k7eo7r1m/

最佳答案

为每种颜色设置 CSS 类名称,然后将适当的类添加到六边形中可能会更容易。

不幸的是,我不相信您可以更改 ':after' 元素的 CSS,因为它们实际上并不存在于 DOM 中,因此您无法访问它。

编辑:这是一个 fiddle

JS:

$(document).ready(function() {
    var randomColors = ["","altColor"];
    $(".hexagon").each(function(index) {
        var len = randomColors.length;
        var randomNum = Math.floor(Math.random()*len);
        $(this).addClass(randomColors[randomNum]);
    });
});

CSS:

.hexagon {
    position: relative;
    display: inline-block;
    width: 100px; 
    height: 57.74px;
    background-color: #F7CA18;
    margin: 28.87px 0;
    margin-right: 4px;
}

.hexagon:before,
.hexagon:after {
    content: "";
    position: absolute;
    width: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
}

.hexagon:before {
    bottom: 100%;
    border-bottom: 28.87px solid #F7CA18;
}

.hexagon:after {
    top: 100%;
    width: 0;
    border-top: 28.87px solid #F7CA18;
}

.altColor {
    background-color: #96281B;
}

.altColor:before {
    border-bottom: 28.87px solid #96281B;
}

.altColor:after {
    border-top: 28.87px solid #96281B;
}

EDIT2:我已经清理了 CSS。

关于jquery - 对背景和边框应用相同的随机颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496839/

相关文章:

javascript - 无法使用 JavaScript 关闭便签

javascript - 我试图在页面加载时隐藏一个段落,然后执行显示/隐藏 jquery 并更改按钮名称 onclick

JQuery ':contains' 选择器 - 搜索包含嵌套括号的文本

javascript - 使用 mindmup-editabletable.js 时显示的阴影

java - 如何使用 JQuery 附加 servlet 的输出

javascript - Jquery 成功函数未使用 JSONP 触发

jquery - 从另一个 div 中检索内容并应用到新的 div

javascript - 如何提交表单 onkeyup Action

jquery - 如何统计 child 的数量?

jquery - 定义 jQuery.each() 循环步骤之间的超时