Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery更改文本颜色两次_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使用jQuery更改文本颜色两次

Javascript 使用jQuery更改文本颜色两次,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在用一些例子来搞乱WW3学校。我有以下代码: $(文档).ready(函数(){ $(“按钮”)。单击(函数(){ $(“#p1”).css(“颜色”、“红色”).slideUp(2000)。slideDown(2000)。css(“颜色”、“绿色”); }); }) jQuery很有趣 单击“我”详细说明@alex所说的内容,您可以为slideDown创建一个“回调函数”,动画完成后将调用该函数。在这里你可以改变颜色为绿色,像这样 $(“按钮”)。单击(函数(){ $(“#p1”).

我正在用一些例子来搞乱WW3学校。我有以下代码:

$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
$(“#p1”).css(“颜色”、“红色”).slideUp(2000)。slideDown(2000)。css(“颜色”、“绿色”);
});
})

jQuery很有趣


单击“我”
详细说明@alex所说的内容,您可以为
slideDown
创建一个“回调函数”,动画完成后将调用该函数。在这里你可以改变颜色为绿色,像这样

$(“按钮”)。单击(函数(){
$(“#p1”).css(“颜色”、“红色”).slideUp(2000).slideDown(2000,函数(){
$(this.css(“颜色”、“绿色”);
});
});

jQuery很有趣


单击我可以调用三个jQuery函数,
.css()
.slideUp()
,和
.slideDown()
。对
.css()
的调用会立即按顺序进行,这就是为什么您会看到绿色而不是红色(如果您可以减慢时间,您会看到红色闪烁一瞬间)

但是,对
.slideUp()
.slideDown()
的调用将排队,以便依次完成。如上文所述:

队列是jQuery中所有动画的基础,它们允许 要在元素上异步执行的系列函数。方法 例如

.slideUp()
.slideDown()
.fadeIn()
,和
.fadeOut()
都使用
.animate()
,它利用队列来构建一系列步骤 这将在整个过程中转换一个或多个CSS值 动画

这就是为什么事件按您看到的顺序发生。如果希望最后的
.css()
调用发生在
.slideDown()
之后,则需要将其放置在
.slideDown()
的回调中,如下所示:

$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
$(“#p1”).css(“颜色”、“红色”).slideUp(2000).slideDown(2000,函数(){
$(this.css(“颜色”、“绿色”)
});
});
})

jQuery很有趣


单击“我”
查看jQuery动画的完整回调。逻辑是,只有添加到队列中的项才会等待前面的异步调用完成。这主要包括动画和类似
.delay()
的东西。如果每个同步方法都已排队,则会对性能产生影响。@Skint,谢谢。所以我猜改变颜色不被认为是动画:)正确。动画是一段时间内的一系列小变化。它们是异步完成的,否则浏览器将在此期间冻结,您将无法实际看到动画。谢谢大家提供的信息。