特效(Effects) | 特效核心(Effects Core) | 方法重载(Method Overrides)
描述:当动画样式改变时,根据 Class 是否存在以及 switch 参数的值,为匹配的元素集合内的每个元素添加或移除一个或多个 Class。
- .toggleClass( className [, switch ] [, duration ] [, easing ] [, complete ] )
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
ClassName | String | 为匹配的元素集合中的每个元素要切换的一个或多个 class 名称,多个 class 名称用空格分隔 。 | |
switch | Boolean | 一个布尔值,指定 class 应被添加还是被移除。 | |
duration | Number 或 String | 一个字符串或一个数字,指定动画将运行多久。 | 400 |
easing | String | 一个字符串,指示要使用的 easing 函数。 | swing |
complete | Function() | 一旦动画完成时要调用的函数。 |
- .toggleClass( className [, switch ] [, options ] )
参数 | 类型 | 描述 |
---|---|---|
ClassName | String | 为匹配的元素集合中的每个元素要切换的一个或多个 class 名称,多个 class 名称用空格分隔 。 |
switch | Boolean | 一个布尔值,指定 class 应被添加还是被移除。 |
options | Object | 所有的动画设置。所有的属性是可选的。
|
与原生的 CSS 过渡相似,jQuery UI 的 class 动画提供了一个平稳的从一个状态转换到另一个状态的过渡,同时确保所有样式变化的细节是通过 CSS 来完成的,而不需要使用 JavaScript。所有的 class 动画方法,包括 .toggleClass()
,允许自定义动画持续时间和 easing 函数,在动画完成时也提供了一个回调。
并非所有的样式都可以进行动画添加。例如,对背景图像进行动画化。任何不能动画化的样式都将在动画结束时改变。
该插件扩展自 jQuery 内置的 .toggleClass() 方法。如果 jQuery UI 未加载,调用 .toggleClass()
方法不会直接失败,因为该方法在 jQuery 中存在。但是不会发生预期的行为。
为匹配的元素切换 class "big-blue"。
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>.toggleClass() 演示</title>
- <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/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="//code.jquery.com/jquery-1.10.2.js"></script>
- <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
- </head>
- <body>
- <div></div>
- <script>
- $( "div" ).click(function() {
- $( this ).toggleClass( "big-blue", 1000, "easeOutSine" );
- });
- </script>
- </body>
- </html>