2025年3月24日 星期一 甲辰(龙)年 月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > JavaScript

JavaScript/CSS 实现手风琴/折叠效果

时间:03-08来源:作者:点击数:59

本章节我们将学习如何使用 JS/CSS 实现手风琴折叠效果。 先看下效果如下:

基础 HTML 代码

实例

  • <button class="accordion">cdsy 1</button>
  • <div class="panel">
  • <p>城东书院 -- 学习、工作、生活</p>
  • </div>
  • <button class="accordion">cdsy 2</button>
  • <div class="panel">
  • <p>城东书院 -- 学习、工作、生活</p>
  • </div>
  • <button class="accordion">cdsy 3</button>
  • <div class="panel">
  • <p>城东书院 -- 学习、工作、生活</p>
  • </div>

以下是手风琴折叠的样式:

实例

  • /* 打开和关闭手风琴面板的样式 */
  • .accordion {
  • background-color: #eee;
  • color: #444;
  • cursor: pointer;
  • padding: 18px;
  • width: 100%;
  • text-align: left;
  • border: none;
  • outline: none;
  • transition: 0.4s;
  • }
  • /* 设置点击和鼠标移到选项上面时(悬停)的样式 */
  • .active, .accordion:hover {
  • background-color: #ccc;
  • }
  • /* 为手风琴面板设计样式。 默认隐藏 */
  • .panel {
  • padding: 0 18px;
  • background-color: white;
  • max-height: 0;
  • overflow: hidden;
  • transition: max-height 0.2s ease-out;
  • }
  • /* 设置 +、- 标志 */
  • .accordion:after {
  • content: '\002B'; /* Unicode 字符 + 号 */
  • color: #777;
  • font-weight: bold;
  • float: right;
  • margin-left: 5px;
  • }
  • .active:after {
  • content: "\2212"; /* Unicode 字符 - 号 */
  • }

以下是手风琴折叠的 JavaScript 代码:

实例

  • var acc = document.getElementsByClassName("accordion");
  • var i;
  • for (i = 0; i < acc.length; i++) {
  • acc[i].addEventListener("click", function() {
  • this.classList.toggle("active");
  • var panel = this.nextElementSibling;
  • if (panel.style.maxHeight) {
  • panel.style.maxHeight = null;
  • } else {
  • panel.style.maxHeight = panel.scrollHeight + "px";
  • }
  • });
  • }

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门