ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# jQuery UI API - .switchClass() ## 所属类别 [特效(Effects)](ref-effects.html) | [特效核心(Effects Core)](ref-effects-core.html) | [方法重载(Method Overrides)](ref-overrides.html) ## 用法 **描述:**当动画样式改变时,为匹配的元素集合内的每个元素添加和移除指定的 Class。 **返回:**[jQuery](//api.jquery.com/Types/#jQuery) ``` .switchClass( removeClassName, addClassName [, duration ] [, easing ] [, complete ] ) ``` | 参数 | 类型 | 描述 | 默认值 | | --- | --- | --- | --- | | removeClassName | String | 要从每个匹配的元素的 class 属性中移除的一个或多个 class 名称,多个 class 名称用空格分隔 。 | | addClassName | String | 要添加到每个匹配的元素的 class 属性中的一个或多个 class 名称,多个 class 名称用空格分隔。 | | duration | Number 或 String | 一个字符串或一个数字,指定动画将运行多久。 | 400 | | easing | String | 一个字符串,指示要使用的 [easing](api-easings.html) 函数。 | swing | | complete | Function() | 一旦动画完成时要调用的函数。 | ``` .switchClass( removeClassName, addClassName [, options ] ) ``` | 参数 | 类型 | 描述 | | --- | --- | --- | | removeClassName | String | 要从每个匹配的元素的 class 属性中移除的一个或多个 class 名称,多个 class 名称用空格分隔 。 | | addClassName | String | 要添加到每个匹配的元素的 class 属性中的一个或多个 class 名称,多个 class 名称用空格分隔。 | | options | Object | 所有的动画设置。所有的属性是可选的。 * **duration**(默认值:`400`) 类型:Number 或 String 描述:一个字符串或一个数字,指定动画将运行多久。 * **easing**(默认值:`swing`) 类型:String 描述:一个字符串,指示要使用的 [easing](api-easings.html) 函数。 * **complete** 类型:Function() 描述:一旦动画完成时要调用的函数。 * **children**(默认值:`false`) 类型:Boolean 描述:指定动画是否被应用到匹配元素的所有后代。此功能应慎重使用,因为判断元素是否是动画的后代的代价是很大的,会根据后代的数量线性增长。 * **queue**(默认值:`true`) 类型:Boolean 或 String 描述:一个布尔值,指示是否将动画放在特效队列中。如果是 false,动画将立即开始。**自 jQuery 1.7 起**,queue 选项也接受一个字符串,在这种情况下,动画添加到由字符串表示的队列中。 `.switchClass()` 方法允许您在动画过渡中,添加 Class 的同时移除 Class。 与原生的 CSS 过渡相似,jQuery UI 的 class 动画提供了一个平稳的从一个状态转换到另一个状态的过渡,同时确保所有样式变化的细节是通过 CSS 来完成的,而不需要使用 JavaScript。所有的 class 动画方法,包括 `.switchClass()`,允许自定义动画持续时间和 [easing](api-easings.html) 函数,在动画完成时也提供了一个回调。 并非所有的样式都可以进行动画添加。例如,对背景图像进行动画化。任何不能动画化的样式都将在动画结束时改变。 该插件扩展自 jQuery 内置的 .switchClass() 方法。如果 jQuery UI 未加载,调用 `.switchClass()` 方法不会直接失败,因为该方法在 jQuery 中存在。但是不会发生预期的行为。 ## 实例 添加 class "blue" 到匹配的元素,并从匹配的元素中移除 class "big"。 ``` <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>.switchClass() 演示</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 { width: 200px; height: 200px; } .blue { 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 class="big"></div> <script> $( "div" ).click(function() { $( this ).switchClass( "big", "blue", 1000, "easeInOutQuad" ); }); </script> </body> </html> ```