用HTML+CSS+JS做一个闪动的心,CSS属性来控制心的动画效果
时间: 2023-05-21 22:05:31 浏览: 221
好的,可以使用 CSS 的 animation 属性来实现闪动的心,在 HTML 中添加一个 div 元素,设置它的样式为心形,然后通过 JS 给它添加一个 class,这个 class 中定义了动画效果。以下是示例代码:
HTML:
```
<div class="heart"></div>
```
CSS:
```
.heart {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50px;
height: 50px;
background: red;
border-radius: 50%;
}
.heart.beat {
animation: beat 0.8s infinite linear;
}
@keyframes beat {
0% {
transform: scale(1);
}
50% {
transform: scale(0.8);
}
100% {
transform: scale(1);
}
}
```
JS:
```
var heart = document.querySelector('.heart');
heart.classList.add('beat');
```
这样就可以看到一个闪动的红心了。
相关问题
用HTML+CSS+JS 做一个闪动的心
可以用 HTML、CSS 和 JavaScript 来制作一个闪动的心形图案。下面是一个示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>闪动的心</title>
<style>
body {
background-color: black;
}
.heart {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100px;
height: 90px;
background-color: #ff69b4;
transform-origin: center;
animation: heartbeat 1s ease-in-out infinite;
}
.heart:before,
.heart:after {
position: absolute;
content: "";
left: 50px;
top: 0;
width: 50px;
height: 80px;
background-color: #ff69b4;
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 heartbeat {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
</style>
</head>
<body>
<div class="heart"></div>
</body>
</html>
```
解释一下代码:
- HTML 中只有一个 `div` 元素,用来包裹心形图案。
- CSS 中用了伪元素 `:before` 和 `:after` 来实现左右两侧的半圆形,通过旋转和变形来调整角度和形状。
- `transform-origin` 属性用来设置变换的基点,以图案的中心为基点进行动画缩放。
- `animation` 属性用来设置动画效果,指定 `heartbeat` 关键帧动画,并设置持续时间为 1 秒、缓动方式为 `ease-in-out`,并设置无限循环。
这样就可以制作一个闪动的心形图案了,效果如下所示:
![闪动的心形图案](https://i.imgur.com/hKMkCOG.gif)
用HTML+CSS+JS做一个闪动的心网页
好的,下面是一个简单的闪动心的网页实现,你可以将其保存为 HTML 文件并在浏览器中打开。
```html
<!DOCTYPE html>
<html>
<head>
<title>闪动的心</title>
<style>
body {
background-color: #f5f5f5;
}
.heart {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50px;
height: 50px;
background-color: #ff69b4;
animation: heartbeat 1s ease-in-out infinite;
border-radius: 50% 50% 0 0;
transform-origin: center bottom;
}
.heart::before, .heart::after {
content: "";
position: absolute;
left: 0;
top: -50%;
width: 50px;
height: 50px;
background-color: #ff69b4;
border-radius: 50% 50% 0 0;
}
.heart::before {
transform: rotate(-45deg);
}
.heart::after {
transform: rotate(45deg);
}
@keyframes heartbeat {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
</style>
</head>
<body>
<div class="heart"></div>
</body>
</html>
```
这个页面通过 CSS 的动画实现了一个闪动的心,并且使用了绝对定位将其居中显示在页面中央。你可以根据需要自行调整样式和动画的参数。
阅读全文