我是GSAP的新手,正在尝试使用该插件。我想创建一种效果,其中矩形边框由连续循环中的一条小路径绘制。我基本上已经做到了这一点,但是当动画重置时,动画的结尾非常不稳定。
Here's a link移至我正在处理的代码笔上。
如何避免动画突然结束?
我已经尝试将动画设置为drawSVG: "100% 115%"
,但这没用。
我尚未尝试更改宽松政策,因为我认为这不会解决问题。
感谢您的帮助!
答案 0 :(得分:1)
答案 1 :(得分:0)
以前的答案并不适合我,因为我觉得可以做些更优雅的事情。我找到了一个简单的解决方案,其中不使用GSAP,但使用CSS动画。
结果是仅使用一个元素的平滑动画。
GSAP仍然会操纵CSS动画,因此这是对原始问题的简化。
https://codepen.io/strigiforme/pen/zLbYWm
<svg viewbox = "0 0 200 200">
<rect id = "rect" x = "85" y = "20" width="30" height="30" stroke = "red" stroke-width = "1.5" fill="none" stroke-dasharray="30 90" stroke-dashoffset = "240"></rect>
body {
background-color: #222;
overflow: hidden;
}
#rect{
animation: draw 5s linear infinite;
}
@keyframes draw{
14%{
stroke: orange;
}
28%{
stroke: yellow;
}
42%{
stroke: green;
}
56%{
stroke: blue;
}
70%{
stroke: indigo;
}
84%{
stroke: violet;
}
98%{
stroke: red;
}
to{
stroke-dashoffset: 0;
}
}