gpt4 book ai didi

Javascript CSS 时代

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:21 26 4
gpt4 key购买 nike

我想通过添加一个带有 transition = 0s 的类但更改颜色来使用 jQuery 运行 CSS 动画,然后立即删除该类(使用原始 transition = 2s)它逐渐变为原始颜色。

下面是我所说的一个小例子,为什么 blue1() 函数不起作用?我假设 javascript 代码执行得如此之快,以至于元素永远不会添加新类,但我现在确定这是如何在幕后工作的。如果我添加该类,然后等待一段时间并删除该类,它就可以工作(blue2())......有没有更好的方法来实现这一目标?解决此问题的最佳方法是什么?

谢谢。

代码片段:

function blue1(){
$("#element").toggleClass("blue");
$("#element").toggleClass("blue");
}

function blue2(){
$("#element").toggleClass("blue");
setTimeout(function(){
$("#element").toggleClass("blue");
}, 1000);
}
#element{
width:100px;
height:100px;
background:red;
transition:2s;
}

#element.blue{
background:blue;
transition:0s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>

<div id="element"></div>
<button id="button" onclick="blue1();">Run without delay</button>
<button id="button2" onclick="blue2();">Run with delay</button>

</body>
</html>

最佳答案

function blue1(){
var transition = $("#element").is(".delayRed");
if(transition){
$("#element").removeClass("delayRed");
}else {
$("#element").toggleClass("red");
}

}

function blue2(){
var alreadyRed = $("#element").is(".delayRed");
if(!alreadyRed){
setTimeout(function(){
$("#element").toggleClass("delayRed");
}, 1000);
}
}
#element{
width:100px;
height:100px;
background:blue;
}
#element.red{
width:100px;
height:100px;
background:red;
}

#element.delayRed{
width:100px;
height:100px;
background:red;
transition:2s;
}
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="element"></div>
<button id="button" onclick="blue1();">Run without delay</button>
<button id="button2" onclick="blue2();">Run with delay</button>

</body>
</html>

我对其进行了更新以满足 Bruno 的要求,我添加了一个额外的 CSS 片段,这样您就可以在两种颜色之间切换,需要注意的是,如果正方形的颜色已经具有红色类,则您不能转换为红色。

文档:

removeClass()

is()

关于Javascript CSS 时代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40086349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com