二歪同学

  • 写在前面:
  • 实现原理:
  • SVG AttributeName 白名单
  • 关于SVG AttributeName 白名单
  • 附2021 版微信 SVG AttributeName 白名单
  • ——set
  • ——animateTransform
  • ——animateMotion
  • 其他一些SVG 重点参数特性:
  • 博客首页
  • 三行代码
  • 运营笔记
  • 生活随笔
  • 杂项归档
  • 关于博主
  • 友情链接
  • 榜上有名
  • 文章归档
  • 扩展工具
    • 豆瓣影音
    • 博客图床
    • 网站监测
    • 在线网盘
  • 订阅博客
  • 联系博主
  • GitHub
  • Mail

微信公众号SVG交互图文实现原理说明

  • 二歪同学
  • 2022-04-13
  • 2

写在前面:

微信公众号图文SVG交互排版可以说是企业品牌账号的常见的一种推文形式,像诸如Apple、小米、喜茶等诸多账号,都将微信公众号交互图文玩的出神入化。

像滑动、点击展开等一些常见的交互样式,在135等第三方编辑里均可以实现,虽然这很方便,但同时也让品牌图文交互受限于编辑器样式,所以品牌想实现独特的玩法,基本都是找第三方团队进行定制。

起初我以为微信的编辑器是一个类似HTML编辑器,可以通过前端代码实现我们所见的一些交互,但是我自己写的一些交互样式,在135编辑器中可以实现,但保存微信后台便会失效。

后来经过了解,微信公众号SVG图文实现原理与我所想有一定关联,区别在于微信公众号针对SVG AttributeName(元素名称)有着一个白名单,只有通过白名单的标签来书写交互,才能在微信公众号内正常显示。

 

实现原理:

实现微信SVG图文只需(微信允许的)HTML5标签和CSS3即可实现,无需用到JavaScript,

 

SVG AttributeName 白名单

SVG AttributeName 白名单就是上述“微信允许”的HTML5标签,如果使用的H5标签不在此白名单内,在图文保存后微信后台会对非白名单内的标签进行修改,致使样式和交互失效。

 

关于SVG AttributeName 白名单

SVG AttributeName 白名单最早于2016年由JZCreative团队与微信团队共同测试并发布,至今的主要迭代集中于其范式的具体应用。

注:

  • 请勿使用突破白名单的规则进行互动排版或者模版设计,或将被微信团队视为对抗开发。典型的被封禁能力包括此前由部分编辑器恶意发布的图文弹跳等,尽管依然有漏洞可以突破,但相关开发均为高度危险举动。

  • 由于 <id> 限制,请确保开发中不含剪切路径、滤镜、渐变、网格等矢量特征。解决方案:可以通过 <foreignObject> 等策略转为位图载入解决表现特性。

 

附2021 版微信 SVG AttributeName 白名单

——animate

(c) x

控制简单几何体 x 轴方向移动。

创意应用如柱状图等

(c) y

控制简单几何体 y 轴方向移动。

创意应用如柱状图等

width

控制简单几何体宽度变化。

创意应用如身长式图文(宽度自适应)

height

控制简单几何体高度变化。

创意应用如审伸长、展开式图文,预占位等

r

控制圆形几何体半径变化

opacity

控制透明度变化,数值为0到1

d 

控制贝塞尔曲线补间行为,但表现具有随机性。

points

控制多边形补间行为,但表现具有随机性。

stroke-

含storke 描边色以及stroke-width|stroke-linecap|stroke-dashoffset描边宽度、描边端点和描边偏移量

创意应用:如遮罩动画、饼/分图、进度线等。

fill

控制填充色过渡变化。

相关案例:点击查看

 

——set

visibility

控制可见性效果的表达,数值包括visible|hidden|collapse|inherit

创意应用:防止误触等

相关案例:点击查看

 

——animateTransform

translate

控制路径和编组的位移

scale 

控制路径和编组的x,y轴缩放。

创意应用如伪翻转等

rotate

控制路径和编组的旋转

skewX

控制路径和编组的 x 轴倾斜

创意应用:台历翻阅等

skewY 

控制路径和编组的 y 轴倾斜

创意应用:书籍翻阅等

相关案例:点击查看

 

——animateMotion

path 

单行/复杂轨迹动画,可通过 rotate 定义朝向。

创意应用如轨迹飞行等。

相关案例:点击查看

 

 

其他一些SVG 重点参数特性:

(1)控制动画表现的 from |to| values|fill|additive| accumulate |calcMode|begin|end|rotate(朝向控制) |repeatCount|keyTimes|keySplines|restart| dur等均可用,但分号等代码需注意系统适配性问题。

(2)部分因  <id> 等受限的元素:use|mpath|by|cliPath |filter

(3)相关受限当前在 <embed> 下失效,关与他的应用规则微信团队正在斟酌中。

(4)叶子节点被深色模式跳过,因此可做为如原色显示、无缝布局、无标链接等高级品牌新媒体运营的唯一选择。

*部分内容参考来源:JZCreative

© 2023 二歪同学
Theme by Wing
鲁ICP备2021036422号
  • {{ item.name }}
  • {{ item.name }}