javascript - 显示子项时动态更改容器背景

标签 javascript jquery html css

我在弄清楚如何根据内容的可见性操作容器时遇到一些问题。

在这种情况下,它是一个带有两个幻灯片的 slider 。鉴于它可能有许多不同“颜色”的幻灯片;我想更改容器的背景颜色。

<div class="slider-container">

    <div class="slider-post red" aria-hidden="false">
        some content
    </div>

    <div class="slider-post green" aria-hidden="true">
        some other content
    </div>
</div>

slider 使用 aria-hidden 来确定幻灯片是否可见。

所以我的想法是:

if ( $('.slider-post').hasClass('red') && $('.red').attr('aria-hidden') == "false" ) {
    $('slider-container').addClass('red-container');
}
else if( $('.slider-post').hasClass('green') && $('.green').attr('aria-hidden') == "false" ) {
    $('slider-container').addClass('green-container');
}

但这导致 slider-container 总是红色,red-container。 我猜这是因为一旦 if 语句评估为真,它就会停止进一步检查。

那么我如何持续检查“陈述”是真还是假? 此外,考虑到以下示例,我可以看到再次删除添加的类时会遇到问题:

if ( $('.slider-post').hasClass('red') && $('.red').attr('aria-hidden') == "false" ) {
    $('slider-container').addClass('red-container');
    $('slider-container').removeClass('green-container');
}  

如果有黄色、蓝色、棕色的容器等等怎么办?

最佳答案

我想您可以将幻灯片更改操作附加到事件。例如,单击下一个/上一个箭头。这样,您的 if 语句将被检查。

如果你有很多幻灯片,你可以获取它的背景颜色并将这种颜色应用到你的容器中:

var color = $(this).css("backgroundColor");
$('slider-container').css("backgroundColor", color);

关于javascript - 显示子项时动态更改容器背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46836126/

相关文章:

html - CSS继承样式不覆盖

php - 如何避免字符串中的 '&' 运算符

javascript - 使用偏移值获取时区缩写

javascript - 使用 JS 查找字符串中的逗号

javascript - jQuery 剪切 2 个标签之间的内容

javascript - jQuery ajax load() javascript 没有执行?

javascript - 如果在 jQuery 中选择了选项,如何显示 div

javascript - Backbone.js 比较函数,如何实现降序?

javascript - javascript中的二维码生成库

javascript - 在闭包中保留变量内容时遇到问题