前端设计小技巧——Vue设计Grid布局卡片翻转动效
人物卡片列表
先来一张效果图
废话不多说,上代码
html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="container" id="app">
<div class="card" v-for="u in user">
<div class="front">
<div class="pic" v-html="u.pic">
<!-- 这里可以选择一个方形图片 -->
</div>
<div class="info">
<div class="name">{{ u.name }}</div>
<div class="intro">{{ u.intro }}</div>
</div>
</div>
<div class="back">
<p>{{ u.back }}</p>
</div>
</div>
</div>
<script>
new Vue({
el: '#app',
data: {
user: [
{
pic: '<img src="img/picture.jpg"/>',
name: 'Jason Cao',
intro: '忘记背后,努力面前,向着标杆直跑',
back: '爱人如己',
},{
pic: '<img src="img/picture.jpg"/>',
name: 'Jason Cao',
intro: '忘记背后,努力面前,向着标杆直跑',
back: '爱人如己',
},{
pic: '<img src="img/picture.jpg"/>',
name: 'Jason Cao',
intro: '忘记背后,努力面前,向着标杆直跑',
back: '爱人如己',
}
]
}
})
</script>
</body>
</html>
css代码
* {
margin: 0;
padding: 0;
font-family: Microsoft YaHei;
}
body {
display: flex;
justify-content: center;
min-height: 100vh;
align-items: center;
}
.container {
width: 1080px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
grid-gap: 20px;
margin: 0 auto;
}
.card {
/* 对卡片的大小进行微调 */
position: relative;
width: 260px;
height: 360px;
margin: 20px auto;
}
.pic {
width: 100%;
height: 70%;
border-radius: 5px 5px 0 0;
}
.pic img {
width: 100%;
height: 100%;
border-radius: 5px 5px 0 0;
}
.info {
width: 100%;
height: 30%;
border-radius: 0 0 5px 5px;
padding: 2vh 0;
text-align: center;
}
.name {
font-size: 3vh;
font-weight: bold;
}
.intro {
font-size: 1.5vh;
padding: 1vh 0;
opacity: 0.8;
}
/* card-over */
.front,
.back {
position
transfor: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 5px;
background: #9dd3fa;
backface-visibility: hidden;
-webkit-transition: all 1.5s;
-moz-transition: all 1.5s;
-ms-transition: all 1.5s;
-o-transition: all 1.5s;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
overflow: hidden;
}
.back {
m: rotateY(-180deg);
-webkit-transform: rotateY(-180deg);
}
.card:hover .front {
transform: rotateY(-180deg);
-webkit-transform: rotateY(-180deg);
}
.card:hover .back {
transform: rotateY(-360deg);
-webkit-transform: rotateY(-360deg);
}
.back p {
/* 对行高进行微调 */
font-size: 3vh;
text-align: center;
line-height: 360px;
}
结语
欢迎热爱编程的小伙伴关注我的github博客
以及我的github仓库
里面有一些前端小技巧以及python算法设计跟大家一起分享
我们一起每天进步一点点!