summernote 是一个功能非常强大的 web 编辑器,可以应用到各种场景下。最近在 Meteor 中做了一个小功能,就是实现 summernote 的 toolbar 跟随页面滚动的效果。这样即使文章内容很长,要插入一个图片或者使用其他特殊标签的时候,不必滚动页面到最上方去找 toolbar 了。效果如下:
实现代码
summernote 有一个插件功能,很惭愧,因为个人时间问题,没有去研究如何使用,可以将以下代码封装成 summernote 的插件,这样在任何页面调用 summernote ,toolbar 滚动功能都可以生效了。本文只介绍一下如何在 meteor 应用中使用该函数。
1 | Template.articleNewModal.repositionToolbar = function () { |
Meteor 如何调用
在 meteor 中,只需要响应滚动条宿主的 scroll 消息即可。我这里因为弹出的是一个 bootstrap 风格的 modal。所以响应了 modal 的 scroll 消息。将如下代码放到你模版中的 onRendered 函数中即可。这样这个模版下 className 为 modal 的
1 | // scroll event |
还有,当页面发生大小改变的时候,也需要触发这个函数,已保证 toolbar 的位置和宽度是适应编辑器的。
1 | // window resize |