在网页开发中,<li>
(列表项)是HTML中的一个元素,通常用于创建无序列表(<ul>
)或有序列表(<ol>
)。折叠功能通常指的是通过用户交互(如点击)来显示或隐藏某个元素的内容。
以下是一个使用JavaScript和CSS实现手风琴效果的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accordion Effect</title>
<style>
.accordion {
width: 100%;
max-width: 400px;
margin: 50px auto;
}
.accordion-item {
border: 1px solid #ccc;
margin-bottom: 10px;
}
.accordion-header {
background-color: #f1f1f1;
padding: 10px;
cursor: pointer;
}
.accordion-content {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
.accordion-content.active {
max-height: 500px; /* 设置一个足够大的值 */
transition: max-height 0.3s ease-in;
}
</style>
</head>
<body>
<div class="accordion">
<div class="accordion-item">
<div class="accordion-header" onclick="toggleAccordion(this)">Item 1</div>
<div class="accordion-content">
<p>Content for Item 1</p>
</div>
</div>
<div class="accordion-item">
<div class="accordion-header" onclick="toggleAccordion(this)">Item 2</div>
<div class="accordion-content">
<p>Content for Item 2</p>
</div>
</div>
<div class="accordion-item">
<div class="accordion-header" onclick="toggleAccordion(this)">Item 3</div>
<div class="accordion-content">
<p>Content for Item 3</p>
</div>
</div>
</div>
<script>
function toggleAccordion(header) {
const content = header.nextElementSibling;
content.classList.toggle('active');
if (content.classList.contains('active')) {
content.style.maxHeight = content.scrollHeight + 'px';
} else {
content.style.maxHeight = '0';
}
}
</script>
</body>
</html>
<li>
ElementrequestAnimationFrame
进行优化。通过以上方法和示例代码,你应该能够实现一个基本的折叠功能,并根据需要进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云