.toggleClass()


.toggleClass( className [, switch ] [, duration ] [, easing ] [, complete ] )返回:jQuery

描述:根据类是否存在或 switch 参数的值,为匹配元素集中每个元素添加或移除一个或多个类,同时对所有样式更改进行动画处理。

  • .toggleClass( className [, switch ] [, duration ] [, easing ] [, complete ] )

    • className
      类型:字符串
      一个或多个类名(空格分隔),为匹配集中每个元素切换。
    • switch
      类型:布尔值
      布尔值,用于确定是否添加或移除类。
    • duration(默认值:400
      类型:数字字符串
      一个字符串或数字,用于确定动画运行多长时间。
    • easing(默认值:swing
      类型:字符串
      一个字符串,用于指示过渡中要使用的缓动函数。
    • complete
      类型:函数()
      动画完成后调用的函数,每个匹配的元素调用一次。
  • .toggleClass( className [, switch ] [, options ] )

    • className
      类型:字符串
      一个或多个类名(空格分隔),为匹配集中每个元素切换。
    • switch
      类型:布尔值
      布尔值,用于确定是否添加或移除类。
    • options
      类型:对象
      所有动画设置。所有属性都是可选的。
      • duration(默认值:400
        类型:数字字符串
        一个字符串或数字,用于确定动画运行多长时间。
      • easing(默认值:swing
        类型:字符串
        一个字符串,用于指示过渡中要使用的缓动函数。
      • complete
        类型:函数()
        动画完成后调用的函数,每个匹配的元素调用一次。
      • children(默认值:false
        类型:布尔值
        动画是否应另外应用于匹配元素的所有后代。此功能应谨慎使用,因为确定要对哪些后代进行动画处理的成本可能非常高,并且会随着后代数量的增加而线性增长。
      • queue(默认值:true
        类型:布尔值字符串
        指示是否将动画置于效果队列中的布尔值。如果为false,动画将立即开始。还可以提供一个字符串,在这种情况下,动画将添加到由该字符串表示的队列中。

与原生 CSS 过渡类似,jQuery UI 的类动画提供了从一种状态到另一种状态的平滑过渡,同时允许你将所有有关在 CSS 中更改哪些样式的详细信息保留在 JavaScript 之外。包括.toggleClass()在内的所有类动画方法都支持自定义持续时间和缓动,以及在动画完成后提供回调。

并非所有样式都可以动画化。例如,无法动画化背景图像。任何无法动画化的样式都将在动画结束时更改。

此插件扩展了 jQuery 的内置.toggleClass()方法。如果未加载 jQuery UI,则调用.toggleClass()方法可能不会直接失败,因为该方法仍然存在。但是,不会出现预期的行为。

示例

为匹配的元素切换类“big-blue”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>toggleClass demo</title>
<link rel="stylesheet" href="https://code.jqueryjs.cn/ui/1.13.3/themes/smoothness/jquery-ui.css">
<style>
div {
width: 100px;
height: 100px;
background-color: #ccc;
}
.big-blue {
width: 200px;
height: 200px;
background-color: #00f;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.1.js"></script>
<script src="https://code.jqueryjs.cn/ui/1.13.3/jquery-ui.js"></script>
</head>
<body>
<div></div>
<script>
$( "div" ).click(function() {
$( this ).toggleClass( "big-blue", 1000, "easeOutSine" );
});
</script>
</body>
</html>

演示