已知有2个点,实现先出现一个点,再出现一条连线,再出现一个点的动画特效,写一段html/css代码
时间: 2024-04-17 22:23:44 浏览: 94
以下是一个基本的HTML和CSS代码示例,用于实现先出现一个点,再出现一条连线,再出现一个点的动画特效:
```html
<!DOCTYPE html>
<html>
<head>
<title>点与连线动画</title>
<style>
/* 设置画布大小 */
#canvas {
width: 500px;
height: 300px;
border: 1px solid #000;
position: relative;
}
/* 定义点的样式 */
.point {
position: absolute;
width: 10px;
height: 10px;
background-color: red;
border-radius: 50%;
opacity: 0;
animation: fadeIn 1s forwards;
}
/* 定义连线的样式 */
.line {
position: absolute;
border-bottom: 1px solid blue;
width: 0;
opacity: 0;
animation: drawLine 1s forwards;
}
/* 定义点和连线的动画 */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes drawLine {
0% {
width: 0;
opacity: 0;
}
100% {
width: 100%;
opacity: 1;
}
}
</style>
</head>
<body>
<div id="canvas">
<!-- 这里将通过JavaScript动态添加点和连线 -->
</div>
<script>
// 获取画布元素
const canvas = document.getElementById('canvas');
// 定义点的位置
const points = [
{ x: 100, y: 150 },
{ x: 400, y: 150 }
];
// 动态添加点和连线
for (let i = 0; i < points.length; i++) {
// 创建点元素
const pointElement = document.createElement('div');
pointElement.className = 'point';
pointElement.style.left = points[i].x + 'px';
pointElement.style.top = points[i].y + 'px';
pointElement.style.animationDelay = (i * 1.5) + 's'; // 第一个点延迟1.5秒出现,第二个点延迟3秒出现
canvas.appendChild(pointElement);
// 创建连线元素
if (i > 0) {
const lineElement = document.createElement('div');
lineElement.className = 'line';
lineElement.style.left = (points[i - 1].x + 5) + 'px';
lineElement.style.top = (points[i - 1].y + 5) + 'px';
lineElement.style.animationDelay = ((i - 1) * 1.5) + 's'; // 连线延迟1.5秒出现
canvas.appendChild(lineElement);
}
}
</script>
</body>
</html>
```
上述代码使用了HTML和CSS来创建一个画布元素,并通过JavaScript动态添加点和连线。第一个点会在1.5秒后出现,第二个点会在3秒后出现,同时连线会在1.5秒后出现。每个点和连线都具有淡入的动画效果。你可以根据需要修改画布的大小、点和连线的样式等参数。希望对你有所帮助!
阅读全文