JavaScript/CSS 实现手风琴/折叠效果
本章节我们将学习如何使用 JS/CSS 实现手风琴折叠效果。 先看下效果如下:
基础 HTML 代码
<button class="accordion">codebaoku 1</button> <div class="panel"><p>编程教程-- 技术改变世界!!!</p> </div> <button class="accordion">codebaoku 2</button> <div class="panel"><p>编程教程-- 技术改变世界!!!</p> </div> <button class="accordion">codebaoku 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"; } }); }尝试一下 »
本章节我们将学习如何使用 JS/CSS 实现列表搜索或过滤功能。先看下效果如下:基础 HTML 代码<input type="text" id="myInput" onkeyup="myFu ...