从生成的 SVG 中剪切框架
作者: abitrolly创建于 2020年4月22日更新于 2020年4月22日
我找不到可以编辑由termtosvg生成动画的工具。从格式说明来看,它看起来非常真实。termtosvg动画中的所有帧都是独立的,并存储在svg.svg.defs中(但不进行渲染)。此数组由g#g1,g#g2等元素组成。每个元素都是一个完整的绘制帧。然后,在svg.svg.g#screen_view中,这些元素从上到下放置在一个画布上。然后,对 SVG 视口应用 CSS 样式动画,使其沿 Y 轴滚动。算法似乎很简单:
- 在
svg.svg.g#screen_view中找到需要删除的帧的<g>元素,记住其索引 - 删除具有相同索引的
<g>元素和 CSS 动画规则
2.422%{transform:translateY(-3366px)}
2.681%{transform:translateY(-3740px)}
2.767%{transform:translateY(-4114px)}- 检查删除的
<g>元素的 Y 坐标是否与 CSS 坐标匹配 - 检查
svg.svg.defs中的g#gN元素是否在其他地方引用,并一并删除 唯一的问题是时间。以前的帧现在将暴露更长的时间,并且需要重新调整所有帧之后的 CSS 百分比。因此,动画的结束处会产生暂停。因此,必须缩短绝对的--animation-duration时间。但这不会消除动画结束处的暂停 - 所有帧都变得更快了,因为所有百分比都是相对于总动画时长的。
内容来源: nbedos/termtosvg