微信公众号:图文编辑器SVG动效-点击显示图片效果

NO.1
公众号图文编辑器

最近开始写关于公众号编辑器Chrome插件

以前试过

  1. 写过WordPress编辑器插件,给TinyMce功能增强(使用php)

  2. 写过网页编辑器,选用TinyMce或者Quill(使用javaScript)

  3. 写过客户端编辑器,使用Electron(NodeJs)

客户端和网页编辑器相对好用但是脱离平台,需要多一步复制等操作,如果图片不依赖图床,复制起来相对繁琐

WordPress编辑器插件由于从经典编辑器切换到古腾堡编辑器

原来的代码高亮和HTML片段可以直接通过编辑HTML的方式,无需通过TinyMce,所以以前写的作用不大了

NO.2
Chrome插件

写Chrome插件的第一个原因是:

它可以直接操作DOM,对公众号编辑器在当前页面直接进行功能增强

并且直接对公众号使用的Ueditor编辑器v1.2.6实例进行变量引用和操作,复用其API

其他的原因是

  1. 无需部署服务器,离线可用,需要的资源和网页直接放在Chrome插件当中

  2. 可以使用Chrome的API,对JS操作不了的地方进行功能补充,但是v3版本比v2版本限制多了太多,很多以前可以的API,现在都被禁止了

因为是偏向技术类文章,时不时会放一些代码

公众号编辑器自身提供的代码块样式不怎么好看,需要加一个代码高亮

一键设置图片圆角和阴影,设置字体大小和颜色和间距,省去很多操作时间

设置自定义标题,如本文的红色标题模版,一键插入,适配移动端和PC端样式

NO.3
一些问题

公众号编辑器可以使用SVG,但是同时又过滤了太多属性

设置图片阴影的时候,发现CSS3 filter:drop-shadow被过滤,但是box-shadow可以使用

设置SVG点击动画的时候,发现id属性和position属性会被过滤(就是点击保存后,这些属性就没了)

id是SVG用来做点击动画,用于指定作用于那个SVG元素,没有id就无法控制动画的元素,只能作用于当前被点击的SVG

position是关于页面定位的,没有这个属性,一些类似覆盖,相对定位的布局就无法实现,基本就只能是一行一行的图文布局

官方并没有明确在论坛回复过滤了那些元素和属性,也没有回复为什么过滤这些属性

总而言之,一些好的交互效果限制了实现,只能实现一些基础的效果,并且是通过一些奇奇怪怪的布局方式来实现

NO.4
Tips

公众号的svg动效目前还没有适配博客,后期抽空适配

END