news 2026/5/30 19:47:35

jQuery UI 实例 - 转换 Class(Switch Class)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery UI 实例 - 转换 Class(Switch Class)

jQuery UI SwitchClass(转换 Class)特效实例

switchClass()是 jQuery UI Effects 中非常强大的方法,它可以以动画效果从一个 CSS 类平滑转换到另一个 CSS 类。本质上是先移除旧类,再添加新类,整个过程平滑过渡,常用于状态切换、主题更换、模式切换(正常/错误/成功)、动画按钮等场景。

addClass()removeClass()toggleClass()不同的是,switchClass() 明确指定“从 A 切换到 B”,更适合有明确前后状态的交互。

官方文档:https://jqueryui.com/switchClass/

下面提供几个渐进实例,代码使用最新 CDN,可直接复制到 HTML 文件测试。

1.基础转换 Class 动画

从一种状态平滑切换到另一种状态。

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jQuery UI SwitchClass 示例</title><linkrel="stylesheet"href="//code.jquery.com/ui/1.13.2/themes/smoothness/jquery-ui.css"><scriptsrc="//code.jquery.com/jquery-3.6.0.min.js"></script><scriptsrc="//code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script><style>.normal{background:#607D8B;color:white;width:200px;height:120px;padding:20px;text-align:center;line-height:120px;border-radius:8px;}.success{background:#4CAF50;color:white;font-size:1.6em;transform:scale(1.1);box-shadow:0 10px 30pxrgba(76,175,80,0.5);border-radius:15px;}.warning{background:#FF9800;color:white;transform:rotate(3deg);box-shadow:0 0 20pxrgba(255,152,0,0.6);}.error{background:#f44336;color:white;transform:scale(0.95)rotate(-2deg);box-shadow:0 0 25pxrgba(244,67,54,0.7);}#box{margin:40px auto;cursor:pointer;}</style></head><body><buttonid="toSuccess">切换到成功状态</button><buttonid="toWarning">切换到警告状态</button><buttonid="toError">切换到错误状态</button><buttonid="toNormal">恢复正常</button><divid="box"class="normal">当前状态:正常</div><script>$(function(){$("#toSuccess").click(function(){$("#box").switchClass("normal","success",1200);});$("#toWarning").click(function(){$("#box").switchClass("normal","warning",1000);});$("#toError").click(function(){$("#box").switchClass("normal","error",1000);});$("#toNormal").click(function(){// 从当前任意状态切换回 normal$("#box").switchClass("success warning error","normal",1500);});});</script></body></html>
2.带缓动 + 回调的转换

使用弹跳缓动,并在转换完成后提示。

<buttonid="modeSwitch">切换模式</button><style>.light{background:#FFFDE7;color:#333;}.dark{background:#212121;color:#FFFDE7;font-weight:bold;}</style><script>$("#modeSwitch").click(function(){$("#box").switchClass("light","dark",1500,"easeInOutBack",function(){alert("已切换到暗黑模式!");}).switchClass("dark","light",1500,"easeInOutBack",function(){alert("已切换回明亮模式!");});// 注意:这里会排队执行,形成来回切换});</script>
3.多状态循环切换

实现三种状态循环:正常 → 警告 → 错误 → 正常。

<buttonid="cycle">循环切换状态</button><script>varstates=["normal","warning","error"];varcurrent=0;$("#cycle").click(function(){varnext=states[(current+1)%states.length];$("#box").switchClass(states[current],next,1000);current=(current+1)%states.length;});</script>
4.常见应用:表单验证状态切换

输入框根据验证结果切换样式。

<inputtype="text"id="username"placeholder="请输入用户名"><buttonid="validate">验证</button><style>.valid{border:3px solid #4CAF50;background:#e8f5e8;}.invalid{border:3px solid #f44336;background:#ffebee;}.default{border:1px solid #ccc;}</style><script>$("#validate").click(function(){varval=$("#username").val();if(val.length>=3){$("#username").switchClass("invalid default","valid",800);}else{$("#username").switchClass("valid default","invalid",800);}});</script>

小技巧

  • 移除旧类、添加新类是原子操作,中间不会出现无样式状态。
  • 支持多个旧类:switchClass("old1 old2", "new", duration)
  • 队列动画:连续调用 switchClass 会自动排队,形成连续状态转换。
  • 与 toggleClass 区别:toggleClass 是“有/无”切换,switchClass 是“从A到B”明确转换。

switchClass() 是实现明确状态迁移的最佳选择,常用于主题切换、模式切换(日间/夜间)、步骤向导状态、按钮多态反馈等。如果你需要暗黑模式全局切换步骤进度条状态动画,或结合 Dialog 的状态反馈示例,请告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 17:52:19

Open-AutoGLM菜谱搜索内幕曝光:5大核心技术首次披露

第一章&#xff1a;Open-AutoGLM菜谱自动搜索Open-AutoGLM 是一个基于开源大语言模型的智能菜谱检索系统&#xff0c;专为家庭厨房与餐饮开发场景设计。它能够根据用户输入的食材列表、口味偏好或饮食限制&#xff0c;自动搜索并生成匹配的菜谱方案。系统融合了自然语言理解与知…

作者头像 李华
网站建设 2026/5/29 23:57:37

为什么顶级厨房都在用Open-AutoGLM?揭秘其智能推理背后的算法逻辑

第一章&#xff1a;Open-AutoGLM 菜谱自动搜索的行业影响Open-AutoGLM 作为基于生成语言模型的自动化菜谱搜索系统&#xff0c;正在深刻改变食品科技与餐饮服务行业的信息获取方式。该系统利用自然语言理解能力&#xff0c;从海量非结构化菜谱数据中精准提取关键成分、烹饪步骤…

作者头像 李华
网站建设 2026/5/28 8:09:02

接口自动化测试之Mock服务实现

1.Mock实现原理和实现机制 在某些时候&#xff0c;后端在开发接口的时候&#xff0c;处理逻辑非常复杂&#xff0c;在测试的时候&#xff0c;后端在未完成接口的情况下该如何去测试呢&#xff1f; 我们需要测试&#xff0c;但是有些请求又需要修改一下参数&#xff0c;或者改变…

作者头像 李华
网站建设 2026/5/28 10:42:44

Open-AutoGLM时间戳对齐难题破解(工业级精度校准方法曝光)

第一章&#xff1a;Open-AutoGLM时间戳对齐难题破解&#xff08;工业级精度校准方法曝光&#xff09;在高并发工业场景下&#xff0c;Open-AutoGLM模型的时间戳对齐问题长期制约着多模态推理的实时性与一致性。由于传感器数据、日志流与模型推理时钟存在微秒级漂移&#xff0c;…

作者头像 李华
网站建设 2026/5/30 15:18:02

FCKEditor站群系统Word图片上传转存批量处理

&#x1f468;&#x1f4bb; Word图片一键转存功能开发日记 &#x1f50d; 寻找解决方案的漫漫长路 作为一个即将毕业的吉林软件工程专业大三学生&#xff0c;我最近在给我的CMS新闻管理系统添加一个超实用的功能 - Word文档一键粘贴并自动上传图片&#xff01;这简直是内容编…

作者头像 李华
网站建设 2026/5/23 23:06:21

洗衣高峰总排队?Open-AutoGLM动态分配方案,立省40%等待时间

第一章&#xff1a;洗衣高峰总排队&#xff1f;Open-AutoGLM破局之道在高校宿舍或共享公寓中&#xff0c;洗衣高峰时段设备紧张、排队时间长已成为普遍痛点。传统排班和手动预约方式效率低下&#xff0c;难以动态响应用户需求。Open-AutoGLM 作为一种轻量级自动化调度模型&…

作者头像 李华