jQuery .css()if语句,超时字符串不起作用?

时间:2018-10-08 09:24:05

标签: javascript jquery

我正在研究此导航栏,当bgColor为true时,需要将背景颜色更改为rgba(15,18,65,0.9)。

但是当bgColor不为true时,背景颜色需要更改。这可行,但是很快,所以我想延迟一下,但是由于某种原因,它不会返回字符串并更改背景颜色。

如果我用控制台记录颜色而不是返回颜色,则效果很好。那么我在这里误会了什么?它只需要延迟假色选项。

$(".navbar-dark")
   .css("background-color", bgColor ? "rgba(15,18,65,0.9)" : 
         setTimeout(function(){return "rgba(15,18,65,0)";}, 1000) 
       );

3 个答案:

答案 0 :(得分:1)

使用if并将setTimeout()放在else块中

if (bgColor) {
    $(".navbar-dark").css("background-color", "rgba(15,18,65,0.9)")
} else {
    setTimeout(function () {
        $(".navbar-dark").css("background-color", "rgba(15,18,65,0)");
    }, 1000);
}

答案 1 :(得分:1)

像其他方法一样,您可以使用JQuery的delay()方法,如下所示:

if (bgColor)
    $(".navbar-dark").css("background-color", "rgba(15,18,65,0.9)");
else
    $(".navbar-dark").delay(1000).css("background-color", "rgba(15,18,65,0)");

答案 2 :(得分:0)

只需设置变量,然后以空白值返回函数即可:

$(".navbar-dark").css("background-color", bgColor ? "rgba(15,18,65,0.9)" : 
     setTimeout(function(){bgColor = "rgba(15,18,65,0)"; return;}, 1000) 
 );