前端设计小技巧——Vue设计Grid布局卡片翻转动效

欢迎热爱前端的小伙伴跟着我一起,每天提升一点点

Posted by BY Jason Cao on May 11, 2020

前端设计小技巧——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算法设计跟大家一起分享

我们一起每天进步一点点!