这是一款CSS3带动画效果的购物商品卡片设计。该效果用于展示商品,当鼠标悬停在卡片上的时候,图片会进行翻转,显示产品的另外一张图片。
使用方法
HTML结构
该CSS3带动画效果的购物商品卡片的基本HTML结构如下:
<div class="container">
<div class="row">
<div class="col-md-3 col-sm-6">
<div class="product-grid">
<div class="product-image">
<img class="pic-1" src="images/img-1.jpg">
<img class="pic-2" src="images/img-2.jpg">
<ul class="social">
<li><a href=""><i class="fa fa-search"></i></a></li>
<li><a href=""><i class="fa fa-shopping-bag"></i></a></li>
</ul>
</div>
<div class="product-content">
<h3 class="title">Shorts</h3>
<ul class="rating">
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="far fa-star"></li>
</ul>
<span class="price">$1199.99</span>
<a href="" class="add-to-cart"><i class="fa fa-shopping-cart"></i></a>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6">
<div class="product-grid">
<div class="product-image">
<img class="pic-1" src="images/img-3.jpg">
<img class="pic-2" src="images/img-4.jpg">
<ul class="social">
<li><a href=""><i class="fa fa-search"></i></a></li>
<li><a href=""><i class="fa fa-shopping-bag"></i></a></li>
</ul>
</div>
<div class="product-content">
<h3 class="title">Men's Suit</h3>
<ul class="rating">
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="fas fa-star"></li>
<li class="far fa-star"></li>
</ul>
<span class="price">$1499.99</span>
<a href="" class="add-to-cart"><i class="fa fa-shopping-cart"></i></a>
</div>
</div>
</div>
</div>
</div>
CSS样式
然后通过下面的CSS样式来制作卡片的布局和鼠标悬停动画效果。
.product-grid{
border: 1px solid rgba(0,0,0,0.2);
text-align: center;
border-radius: 10px;
transition:all 0.5s;
}
.product-grid:hover{box-shadow: 0 8px 10px -5px rgba(0,0,0,0.5);}
.product-grid .product-image{
position: relative;
perspective: 1500px;
margin: 10px;
overflow: hidden;
}
.product-grid .product-image img{
width: 100%;
height: auto;
}
.product-image .pic-1{
opacity: 1;
transform: rotateY(0);
transform-origin: center;
backface-visibility: hidden;
transition: transform 0.5s, opacity 0.2s;
}
.product-grid:hover .product-image .pic-1{
transform :rotateY(-70deg);
opacity: 0;
}
.product-image .pic-2{
width: 100%;
height: 100%;
transform-origin: center;
transform: rotateY(70deg);
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: transform 0.5s, opacity 0.2s;
}
.product-grid:hover .product-image .pic-2{
transform: rotateY(0deg);
opacity: 1;
}
.product-grid .social{
padding: 0;
margin: 0;
position: absolute;
top: 20px;
left: 10px;
z-index: 1;
}
.product-grid .social li{
display: block;
margin: 0 0 10px;
transform: translateX(-100px) rotate(-720deg);
transition: all 0.7s;
}
.product-grid:hover .social li{transform: translateX(0) rotate(0);}
.product-grid .social li a{
display:block;
background: #f44242;
height:40px;
width: 40px;
border-radius: 50%;
line-height: 40px;
color: #fff;
font-size: 20px;
transition:all 0.3s ease 0s;
}
.product-grid .social li a:hover{
background: #fff;
color: #f44242;
box-shadow: 0 0 10px rgba(0,0,0,0.5) inset;
}
.product-grid .product-content{
padding:10px 10px 30px;
}
.product-grid .title{
margin:0 0 10px;
font-size: 20px;
color: #303030;
text-transform: capitalize;
}
.product-grid .rating{
padding: 0;
margin: 0;
list-style: none;
text-align: left;
}
.product-grid .rating li{
display: inline-block;
font-size: 13px;
color: #909090;
}
.product-grid .price{
display: block;
font-size: 17px;
font-weight: 600;
text-align: right;
color: #303030;
margin-top: -15px;
}
.product-grid .add-to-cart{
display: inline-block;
height: 55px;
width: 55px;
line-height: 47px;
font-size: 18px;
border-radius: 50%;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: -25px;
background-color: #f44242;
color: #fff;
border: 5px solid #e7e7e7;
transition: all 0.3s;
}
.product-grid .add-to-cart:hover{
background-color: #fff;
color: #f44242;
}
@media screen and (max-width:990px){
.product-grid{
margin-bottom: 60px;
}
.product-grid .add-to-cart{
bottom: 0;
}
}
@media screen and (max-width:767px){
.product-grid .add-to-cart{
bottom: -25px;
}
}