css動畫 翻開摺疊生日賀卡

做法:
	平面div,設置前後僞類分別覆蓋一半大小,設置前面的僞類旋轉點爲最左邊的線,旋轉角度爲負值向外
	設置後面的僞類旋轉點爲最右邊的線,旋轉角度爲正值向內
	設置最外層元素transform-style: preserve-3d;可以查看3d效果
	transform: perspective(900px) rotateX(45deg) rotateY(25deg);透視和旋轉一定角度增強立體感

代碼示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<link rel="stylesheet" href="./index.css">
	<style>
		.box{
			width: 400px;
			height: 400px;
			border: solid 1px blueviolet;
			display: flex;
			align-items: center;
			justify-content: center;
		}
		
		.d1{
			width: 300px;
			height: 200px;
			background-color: orange;
			position: relative;
			transform-style: preserve-3d;
			transform: perspective(900px) rotateX(45deg) rotateY(25deg);
			display: flex;
			align-items: center;
			justify-content: center;
			color: white;
		}
		.d1::before,.d1::after
		{
			content: '';
			background-color:#E34336;
			width: 50%;
			height: 100%;
			position:absolute;
			border-right: solid 2px orange;
			box-sizing: border-box;
		}
		.d1::before{
			content: '生日';
			color: white;
			left: 0;
			top: 0;
			display: flex;
			justify-content: flex-end;
			align-items: center;
			transition: 2s;
			transform-origin: left;
			
		}
		.d1::after{
			content: '賀卡';
			color: white;
			right: 0;
			top: 0;
			display: flex;
			justify-content: flex-start;
			align-items: center;
			transition: 2s;
			transform-origin: right;
		}
		
		.d1:hover::before{
			transform:rotateY(-180deg);
		}
		.d1:hover::after{
			transform:rotateY(180deg);
		}

		
	</style>
	</head>
	<body class='me'>
		<div class='box'>
			<div class='d1'>生日快樂</div>
			
			
			
		</div>
		
	</body>
</html>

效果圖:
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章