要实现图片的3D旋转滚动效果,可以使用JavaScript结合CSS3的3D变换属性。以下是一个简单的示例代码,展示了如何创建一个3D旋转滚动的图片效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3D Rotating Images</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="carousel">
<div class="carousel-inner">
<div class="carousel-item"><img src="image1.jpg" alt="Image 1"></div>
<div class="carousel-item"><img src="image2.jpg" alt="Image 2"></div>
<div class="carousel-item"><img src="image3.jpg" alt="Image 3"></div>
<!-- Add more images as needed -->
</div>
</div>
<script src="script.js"></script>
</body>
</html>
/* styles.css */
body, html {
height: 100%;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
perspective: 1000px;
}
.carousel {
width: 300px;
height: 200px;
position: relative;
transform-style: preserve-3d;
animation: rotate 10s infinite linear;
}
.carousel-inner {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
}
.carousel-item {
position: absolute;
width: 100%;
height: 100%;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.5s;
}
.carousel-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
@keyframes rotate {
from { transform: rotateY(0deg); }
to { transform: rotateY(360deg); }
}
// script.js
document.addEventListener('DOMContentLoaded', function() {
const carouselInner = document.querySelector('.carousel-inner');
const items = document.querySelectorAll('.carousel-item');
const itemCount = items.length;
const angle = 360 / itemCount;
items.forEach((item, index) => {
item.style.transform = `rotateY(${angle * index}deg) translateZ(300px)`;
});
// Optional: Add touch support for mobile devices
let startX = 0;
carouselInner.addEventListener('touchstart', (e) => {
startX = e.touches[0].clientX;
});
carouselInner.addEventListener('touchmove', (e) => {
const moveX = e.touches[0].clientX;
const diff = startX - moveX;
carouselInner.style.transform = `rotateY(${diff / 2}deg)`;
});
carouselInner.addEventListener('touchend', () => {
carouselInner.style.transform = '';
});
});
div
中。perspective
属性来设置3D空间感。transform-style: preserve-3d
确保子元素在3D空间中正确渲染。@keyframes
定义旋转动画。这种3D旋转滚动效果常用于网站的首页、产品展示页或任何需要吸引用户注意力的地方。它可以增加页面的视觉吸引力,提升用户体验。
希望这个示例能帮助你实现所需的3D旋转滚动效果!
领取专属 10元无门槛券
手把手带您无忧上云