图片手风琴效果是一种常见的网页交互设计,它允许用户通过点击或滑动来展开或折叠图片,从而展示更多的内容。以下是一个简单的JavaScript实现示例,结合HTML和CSS来完成这个效果。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片手风琴效果</title>
<style>
/* 基础样式 */
.accordion {
width: 100%;
max-width: 600px;
margin: 0 auto;
}
.accordion-item {
border: 1px solid #ccc;
margin-bottom: 10px;
}
.accordion-header {
background-color: #f1f1f1;
padding: 10px;
cursor: pointer;
}
.accordion-content {
padding: 0 10px;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
.accordion-content img {
width: 100%;
display: block;
}
</style>
</head>
<body>
<div class="accordion">
<div class="accordion-item">
<div class="accordion-header">图片1</div>
<div class="accordion-content">
<img src="image1.jpg" alt="Image 1">
</div>
</div>
<div class="accordion-item">
<div class="accordion-header">图片2</div>
<div class="accordion-content">
<img src="image2.jpg" alt="Image 2">
</div>
</div>
<!-- 更多图片项... -->
</div>
<script>
// JavaScript代码
document.querySelectorAll('.accordion-header').forEach(header => {
header.addEventListener('click', function() {
const content = this.nextElementSibling;
if (content.style.maxHeight) {
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + 'px';
}
});
});
</script>
</body>
</html>
.accordion-item
的.accordion
容器。.accordion-item
包含一个标题(.accordion-header
)和一个内容区域(.accordion-content
)。.accordion-content
设置了初始的max-height
为0,并且通过transition
属性添加了展开和折叠的动画效果。querySelectorAll
选择所有的.accordion-header
元素。max-height
属性,从而实现展开和折叠的效果。transition
属性设置正确,且图片大小适中,避免过大导致加载缓慢。通过上述代码和解释,你应该能够实现一个基本的图片手风琴效果,并理解其背后的原理和应用场景。
没有搜到相关的文章