当前位置: 首页 > news >正文

jQuery UI 实例 - 折叠面板(Accordion)

jQuery UI Accordion(折叠面板)实例

Accordion是 jQuery UI 中最经典、最常用的组件之一,常用于侧边栏导航、FAQ 问答、设置面板、商品详情等场景。

官方演示地址:https://jqueryui.com/accordion/

下面提供从基础到高级的完整实例,直接复制即可运行(使用最新 CDN)。

1.最基础折叠面板
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jQuery UI Accordion 基础示例</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>body{font-family:"Microsoft YaHei",Arial;}</style></head><body><divid="accordion"><h3>前端开发</h3><div><p>HTML、CSS、JavaScript 是前端三大基石。</p><ul><li>HTML 负责结构</li><li>CSS 负责样式</li><li>JavaScript 负责交互</li></ul></div><h3>后端开发</h3><div><p>常见后端语言有 Java、Python、Node.js、PHP 等。</p></div><h3>数据库</h3><div><p>MySQL、MongoDB、Redis 是最常用的数据库。</p></div><h3>运维与部署</h3><div><p>Docker + Nginx + Jenkins 是现代部署标配。</p></div></div><script>$(function(){$("#accordion").accordion();});</script></body></html>
2.常用选项配置(高度自适应、默认展开、图标自定义)
<script>$("#accordion").accordion({heightStyle:"content",// 高度随内容自适应(推荐!)collapsible:true,// 允许全部收起active:0,// 默认展开第1个(0表示第一个)// active: false, // 配合 collapsible: true 可实现默认全部收起icons:{// 自定义展开/收起小箭头header:"ui-icon-triangle-1-e",activeHeader:"ui-icon-triangle-1-s"},header:"> div > h3"// 如果结构不是直接 h3,可自定义选择器});</script>
3.多层嵌套 + 手风琴嵌套
<divid="accordion"><h3>前端框架</h3><div><divid="nested"><!-- 嵌套一个 accordion --><h3>Vue.js</h3><div><p>渐进式 JavaScript 框架,易上手</p></div><h3>React</h3><div><p>Facebook 出品,组件化开发</p></div><h3>Angular</h3><div><p>Google 出品,功能最完整</p></div></div></div><h3>UI 组件库</h3><div><p>Element UI、Ant Design、Bootstrap、Layui 等</p></div></div><script>$("#accordion").accordion({heightStyle:"content",collapsible:true});$("#nested").accordion({// 嵌套的也要单独初始化heightStyle:"content",collapsible:true});</script>
4.事件监听 + 动态添加面板
<buttonid="addPanel">动态添加一个面板</button><script>$("#accordion").accordion({activate:function(event,ui){// 每次切换面板时触发console.log("当前展开的是:",ui.newHeader.text());}});letcount=5;$("#addPanel").click(function(){constnewHeader=`<h3>新面板${count}</h3>`;constnewContent=`<div><p>这是动态添加的内容,你可以放任何 HTML。</p></div>`;$("#accordion").append(newHeader+newContent);// 关键:添加后必须刷新 accordion$("#accordion").accordion("refresh");count++;});</script>
5.完整美化版(带图标、颜色、圆角)
<style>.ui-accordion-header{background:#3498db;color:white;border-radius:6px 6px 0 0;margin-bottom:4px;padding-left:40px!important;position:relative;}.ui-accordion-header::before{content:"▶";position:absolute;left:12px;top:50%;transform:translateY(-50%);}.ui-accordion-header-active::before{content:"▼";}.ui-accordion-content{border:1px solid #ddd;border-top:none;border-radius:0 0 6px 6px;padding:15px!important;}</style>

小技巧总结

  • 推荐始终加heightStyle: "content",避免内容被裁剪。
  • 想默认全部收起 →collapsible: true, active: false
  • 想通过 URL hash 打开指定面板 → 使用active: "#section3"或配合 JS
  • 移动端建议加event: "click touchstart"支持触摸

需要我给你一个左侧导航菜单完整模板FAQ 问答页面、或配合 Tabs 做选项卡+折叠面板组合的实例吗?直接说!

http://www.cnnetsun.cn/news/166138.html

相关文章:

  • 【Open-AutoGLM家务提醒安排】:揭秘智能家庭任务调度背后的AI黑科技
  • Open-AutoGLM食材购买避坑指南:90%人忽略的3类关键营养匹配原则
  • Open-AutoGLM任务中断恢复实战(断点续训技术大揭秘)
  • 【Open-AutoGLM饮食热量统计】:揭秘AI自动识别食物热量的黑科技与实测效果
  • Linly-Talker如何避免‘恐怖谷效应’?外观设计心理学研究
  • 基于Spring Boot的儿童福利院管理系统的设计与实现毕业设计
  • 基于Android的网上点餐APP
  • 如何用Open-AutoGLM实现秒级故障响应?一线架构师亲授压箱底方案
  • Open-AutoGLM日志系统揭秘,掌握这6个参数才算真正入门
  • jQuery UI 实例 - 放置(Droppable)
  • 探索三相两电平光伏逆变器DC - AC部分的Simulink仿真之旅
  • 【AI推理服务稳定性提升】:基于Open-AutoGLM的后台运行配置最佳实践
  • Open-AutoGLM网络配置避坑指南(一线专家亲授12年实战经验)
  • Open-AutoGLM报错代码怎么破:从日志到修复的7步闭环流程
  • 实时交互不是梦:Linly-Talker构建高响应数字人系统
  • 从沉默到透明:Open-AutoGLM运行日志开启全流程深度解析
  • Open-AutoGLM网络调优实战:5大核心参数配置你真的懂吗?
  • Open-AutoGLM端口占用问题深度解析(专家级排错手册限时公开)
  • JSP如何设计WebUploader分片上传的交互界面?
  • Linly-Talker在光伏电站运维中的故障排查指导
  • vue3+springboot基于uniapp的二手渔具回收商城系统 钓鱼交友的微信小程序开发(编号:803442152)
  • Linly-Talker在相声贯口练习中的气息控制
  • Linly-Talker在风电场巡检中的安全规程重申
  • 设备频繁掉线怎么办,一文搞懂Open-AutoGLM连接优化的8个关键步骤
  • 【稀缺资料】Open-AutoGLM接口调用延迟降低95%的完整技术路径
  • 版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍
  • Linly-Talker在潜水探险中的装备使用说明
  • Linly-Talker在有声书朗读中的章节过渡处理
  • Linly-Talker在桥牌叫牌体系教学中的逻辑演绎
  • 网页前端如何通过Java实现分片上传的并行优化?