<div class="card-container">
<div class="card">
<div class="front">
<img src="front.jpg" alt="翻滚的胖子博客">
</div>
<div class="back">
<img src="back.jpg" alt="翻滚的胖子博客">
</div>
</div>
</div>
在这个容器中,我们创建了一个名为card的div,并在其中包含了两个子元素:front和back,分别用于展示卡片的正反面。现在,我们需要使用CSS来定义这些元素的样式。
首先,我们要将card-container设置为一个相对定位的元素,以便我们可以使用绝对定位来对其子元素进行定位:
.card-container {
position: relative;
perspective: 1000px;
}
接下来,我们定义card的样式,使其具有基本的卡片样式:
.card {
width: 100%;
height: 0;
padding-bottom: 100%;
position: absolute;
top: 0;
left: 0;
transition: transform 1s;
transform-style: preserve-3d;
}
在这个样式中,我们使用了padding-bottom来确保卡片的高度始终与其宽度相同,这是实现响应式效果的关键。我们还定义了一个transition属性,以便在翻转卡片时能够产生平滑的动画效果。
接下来,我们定义front和back的样式,使它们分别显示卡片的正反面:
.front, .back {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.front {
transform: rotateY(0deg);
}
.back {
transform: rotateY(180deg);
}
在这个样式中,我们使用了backface-visibility属性来确保在卡片翻转时,卡片的反面不会被显示出来。
最后,我们添加一些JavaScript代码,以便在用户单击卡片时进行翻转:
var card = document.querySelector('.card');
card.addEventListener('click', function() {
card.classList.toggle('is-flipped');
});
通过这些代码,我们为卡片添加了一个单击事件监听器,并在事件处理程序中使用了classList.toggle方法来切换一个名为is-flipped的类。当这个类被添加到卡片元素上时,卡片将会翻转。
现在,我们的卡片翻转效果已经完成了!你可以根据自己的需要修改样式,并添加更多的卡片。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
