js 实现图片翻页效果
使用 CSS 和 JavaScript 实现图片翻页效果
翻页效果可以通过 CSS 变换和 JavaScript 事件监听实现。以下是一种常见的实现方式:
HTML 结构
<div class="flip-container">
<div class="flipper">
<div class="front">
<img src="front-image.jpg" alt="Front Image">
</div>
<div class="back">
<img src="back-image.jpg" alt="Back Image">
</div>
</div>
</div>
CSS 样式
.flip-container {
perspective: 1000px;
width: 300px;
height: 200px;
}
.flipper {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
}
.flip-container:hover .flipper {
transform: rotateY(180deg);
}
.front, .back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.back {
transform: rotateY(180deg);
}
使用 JavaScript 控制翻页动画
如果需要通过点击事件而不是悬停触发翻页效果,可以使用以下 JavaScript 代码:

document.querySelector('.flip-container').addEventListener('click', function() {
this.querySelector('.flipper').classList.toggle('flipped');
});
对应的 CSS 需要添加:
.flipper.flipped {
transform: rotateY(180deg);
}
多图片轮播翻页效果
对于图片画廊的翻页效果,可以结合滑动动画:
let currentIndex = 0;
const images = document.querySelectorAll('.gallery img');
const totalImages = images.length;
function flipToNext() {
images[currentIndex].classList.remove('active');
currentIndex = (currentIndex + 1) % totalImages;
images[currentIndex].classList.add('active');
}
// 设置自动翻页
setInterval(flipToNext, 3000);
配套 CSS:

.gallery img {
position: absolute;
transition: transform 0.5s ease, opacity 0.5s ease;
opacity: 0;
}
.gallery img.active {
opacity: 1;
transform: translateX(0);
}
.gallery img.next {
transform: translateX(100%);
}
.gallery img.prev {
transform: translateX(-100%);
}
使用第三方库实现高级效果
对于更复杂的翻页效果,可以考虑使用第三方库:
-
Turn.js: 提供书本翻页效果
$("#flipbook").turn({ width: 800, height: 600, autoCenter: true }); -
Flip.js: 轻量级的翻页动画库
const card = document.querySelector('.card'); flip(card, { duration: 1000, easing: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)' });
这些方法提供了从简单到复杂的图片翻页实现方案,可以根据项目需求选择适合的方式。CSS 方案适合基础效果,JavaScript 方案提供更多控制,而第三方库则能快速实现专业级效果。






