svg 交互动画 2
2024/01/12
共 745 字
约 3 分钟
归档: 技术
继续模仿一些微信公众号文章中的交互效果。
卷轴展开效果
效果描述:刚进入页面时,是一个较短的矩形,点击后主体逐渐变长,显示更多内容。这么个简单的效果在某编辑器中要付费,我是挺惊讶的。
无非是个线性变长的矩形,里层容器为固定高度,存放正文内容,改变外层容器的 height 属性,控制可视区域。添加 restart="never"
保证动画触发一次后不会再被触发。
如下例子,内容固定高度为160,外层容器高度在 1s 内从 100 变成 160:
实际应用中,可能还需要加上头尾,这样卷轴展开效果就完美了:
回弹效果
在上述基础上,做一些变形:全程线性变长改为分段变长,且每一段都有回弹效果:
foreignObject
讲了这么多例子,为了容易理解,都是用颜色方块来代替正文内容。在实际应用中,更多是使用图片作为内容,foreignObject
就是一个很好的选择,它允许包含来自不同的 XML 命名空间的元素,甚至嵌入 HTML。
作弊方法
市面上有各种编辑器,可以方便地给公众号文章添加交互动效,由于 SVG 的代码是可以直接查看的,所以看到喜欢的效果时,打开控制台,把 SVG 的代码复制下来,研究一下,基本就能理解他的实现原理,从而复刻类似效果。
留言