效果视频展示:
(html+css)爱心小卡片
全部代码(放心粘贴):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{
margin: 0;
padding: 0;
}
.letter{
width: 400px;
height: 400px;
top: 50%;
margin-top: -200px;
left: 50%;
margin-left: -200px;
animation: jump 2s ease 0s infinite;
position: absolute;
}
.letter:hover{
animation-play-state:paused;
}/* 鼠标移动 letter 后 停止jump动画 */
/* 心形div */
.heart{
top: 50%;
margin-top: -100px;
left: 50%;
margin-left: -100px;
position: absolute;
}
.heart:nth-child(2):hover{
animation: turn 10s ease 0s;
}
.heart>div:nth-child(3){
width: 200px;
height: 200px;
margin-top: -75px;
margin-left: -80px;
border-radius: 50%;
background: red;
transform: rotate(-20deg);
box-shadow: 15px 20px 40px -10px rgb(83, 8, 8) inset;
position: absolute;
}
.heart>div:nth-child(2){
width: 200px;
height: 200px;
margin-top: -75px;
margin-left: 80px;
border-radius: 50%;
background: red;
box-shadow: 15px 20px 40px -10px rgb(83, 8, 8) inset;
transform: rotate(100deg);
position: absolute;
}
.heart>div:nth-child(1){
width: 200px;
height: 200px;
transform: rotate(45deg);
border-radius: 10%;
box-shadow: 10px 10px 20px 20px rgb(83, 8, 8) inset;
background: red;
position: absolute;
}
/* 心形中的文字框*/
.text{
width: 250px;
height: 200px;
top: 50%;
margin-top: -25px;
left: 50%;
margin-left: -25px;
border-radius: 10% 10% 50% 50%;
color: white;
font-size: 35px;
text-align: center;
line-height: 100px;
text-shadow: 0 0 10px red,0 0 20px red,0 0 30px red,0 0 40px red ;
position: absolute;
background: hsl(350, 100%, 88%,0.4);
letter-spacing: 0px;
}
/* “打开” 文字框 */
.heart:nth-child(2)>.text{
width: 150px;
height: 100px;
margin-top: 10px;
margin-left: 25px;
border-radius: 100% 100% 50% 50%;
animation: gli 10s ease 0s;
}
.heart:nth-child(2):hover>.text{
display: none;
}
/* 整个 心形摇摆 动画 */
@keyframes jump {
0%{
transform:rotate(10deg)
}
50%{
transform:rotate(-10deg)
}
100%{
transform:rotate(10deg)
}
}
/* 第二个心形div的 移动 动画*/
@keyframes turn{
0%{
transform: rotateY(0deg) translateX(0px);
}
50%{
transform: rotateY(-35deg) translateX(-50px);
}
65%{
transform: rotateY(-40deg) translateX(-75px);
}
75%{
transform: rotateY(-45deg) translateX(-50px) translateY(-50px);
}
100%{
transform: rotateZ(-150deg) translateX(-350px) translateY(-250px);
}
}
/* “打开” 字样的发光颜色变化 */
@keyframes gli {
0%{
text-shadow: 0 0 10px red,0 0 20px red,0 0 30px red,0 0 40px red ;
}
25%{
text-shadow: 0 0 10px orange,0 0 20px orange,0 0 30px orange,0 0 40px orange ;
}
50%{
text-shadow: 0 0 10px yellow,0 0 20px yellow,0 0 30px yellow,0 0 40px yellow ;
}
75%{
text-shadow: 0 0 10px green,0 0 20px green,0 0 30px greend,0 0 40px green ;
}
100%{
text-shadow: 0 0 10px blue,0 0 20px blue,0 0 30px blue,0 0 40px blue ;
}
}
</style>
<body>
<div class="letter">
<div class="heart">
<div></div>
<div></div>
<div></div>
<div class="text">
祝天下所有母亲<br>平安喜乐
</div>
</div>
<div class="heart">
<div></div>
<div></div>
<div></div>
<div class="text">
打开
</div>
</div>
</div>
<script>
var hreat = document.querySelector('.letter')
console.log(hreat)
</script>
</body>
</html>