【发布时间】:2022-01-16 22:47:42
【问题描述】:
我在 html 页面上有一个移动框(一个 div 变成了一个小框)。盒子在我在 css 动画帧中描述的曲线路径中移动。
现在我必须在这个盒子移动之后画一条线,只是为了模仿铅笔移动,所以看起来这条线已经被移动的盒子画了。当盒子移动时,一条线应该开始出现在它后面,例如就像我们用钢笔或铅笔画线一样。
不确定,如果仅在 css 中可行,但如果您有任何建议,请随时给我建议。谢谢。
这里是代码 测试.html
<html>
<head>
<link rel="stylesheet" href="box.css">
</head>
<body style="background-color: white;">
<div id="box">
<div id="line"></div>
</div>
</body>
<script src = "logo.js"></script>
</html>
css 文件:box.css
body{
width:100%;
height:100vh;
background-color: black;
}
#box {
margin-top:300px;
margin-left:30px;
top:0;
left:0;
width:30px;
height:40px;
background-color: red;
animation:move-line;
animation-duration: 5s;
animation-iteration-count: infinite;
}
@keyframes move-line {
0%{
transform:translateX(0px)translateY(0px) ;
}
50%{
transform:translateX(280px)translateY(0px) ;
}
60%{
transform:translateX(300px)translateY(-100px) ;
}
70%{
transform:translateX(300px)translateY(100px) ;
}
80%{
transform:translateX(320px)translateY(0px) ;
}
90%{
transform:translateX(330)translateY(0px) ;
}
100%{
transform:translateX(400px) ;
}
}
javascript 文件:logo.js 目前它是空的,但如果您有解决方案,也可以随意使用 javascript,但是首选 css。
【问题讨论】:
-
是的,你可以只使用 CSS。提前绘制路径(在容器上使用背景线性渐变),然后在带有白色背景的框上放置一个大的伪后元素。随着盒子的移动,线条会显露出来,而且时间会很准确。
-
如果你只是一点点codepen会很有帮助吗?