我的心♥只为你跳动
1.先看效果
2.源代码
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #ff9ff3;
overflow: hidden;
font-family: 'Arial', sans-serif;
}
.container {
text-align: center;
}
.heart {
position: relative;
width: 100px;
height: 90px;
margin: 30px auto;
transform: scale(1);
animation: pulse 1s infinite alternate;
}
.heart:before,
.heart:after {
position: absolute;
content: "";
left: 50px;
top: 0;
width: 50px;
height: 80px;
background: #ff0844;
border-radius: 50px 50px 0 0;
transform: rotate(-45deg);
transform-origin: 0 100%;
}
.heart:after {
left: 0;
transform: rotate(45deg);
transform-origin: 100% 100%;
}
@keyframes pulse {
0% {
transform: scale(0.8);
}
100% {
transform: scale(1.2);
}
}
.message {
font-size: 24px;
color: #fff;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
margin-bottom: 20px;
opacity: 0;
animation: fadeIn 2s ease-in-out forwards;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
.floating-hearts {
position: absolute;
width: 100%;
height: 100%;
overflow: hidden;
z-index: -1;
}
.floating-heart {
position: absolute;
background: rgba(255, 255, 255, 0.8);
width: 10px;
height: 10px;
transform: rotate(45deg);
animation: float 4s infinite;
}
@keyframes float {
0% {
transform: translateY(0) rotate(45deg);
opacity: 0;
}
20% {
opacity: 1;
}
100% {
transform: translateY(-1000%) rotate(45deg);
opacity: 0;
}
}
.btn {
display: inline-block;
padding: 10px 20px;
background-color: #ff0844;
color: #fff;
text-decoration: none;
border-radius: 25px;
font-size: 18px;
transition: all 0.3s ease;
opacity: 0;
animation: fadeIn 2s ease-in-out 1s forwards;
}
.btn:hover {
background-color: #ff4778;
transform: scale(1.05);
}
function createFloatingHeart() {
const heart = document.createElement('div');
heart.classList.add('floating-heart');
heart.style.left = Math.random() * 100 + 'vw';
heart.style.animationDuration = (Math.random() * 3 + 2) + 's';
document.getElementById('floatingHearts').appendChild(heart);
setTimeout(() => {
heart.remove();
}, 5000);
}
setInterval(createFloatingHeart, 300);
扫描二维码分享
评论区
请登录后发表评论。