HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册,耗时两个礼拜8000字前端面试长文
由于篇幅限制,下面仅展示3D旋转相册的核心函数,其中包含了HTML结构和CSS样式的关键部分。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3D旋转相册</title>
<style>
.gallery {
perspective: 1000px;
}
.gallery-item {
position: relative;
width: 250px;
height: 150px;
margin: 10px;
transform-style: preserve-3d;
transition: transform 1s;
}
.gallery-item img {
width: 100%;
height: 100%;
position: absolute;
backface-visibility: hidden;
}
.gallery-item.flip {
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div class="gallery">
<div class="gallery-item">
<img src="image1.jpg" alt="Image 1">
<div class="back">
<img src="image1-back.jpg" alt="Image 1 Back">
</div>
</div>
<!-- 其他相册项 -->
</div>
<script>
// 这里应该包含前端面试长问到的“点击相册项时翻转”的逻辑
document.querySelectorAll('.gallery-item').forEach(item => {
item.addEventListener('click', () => {
item.classList.toggle('flip');
});
});
</script>
</body>
</html>
这个简化版的HTML和CSS代码展示了如何创建一个基本的3D旋转相册,其中.gallery
是相册容器,.gallery-item
是每个相册项的容器,它们通过CSS的transform-style: preserve-3d;
属性开启3D空间,并通过JavaScript监听点击事件来切换.flip
类以实现翻转效果。这个简化版本的代码示例教学意义更为明显,并且可以作为面试官提问的一个基础。
评论已关闭