【新增】layui后台布局与百度富文本(ueditor)兼容性问题处理方案

发布时间:2021-03-28 21:00:21 浏览量:1109 标签: layui 富文本

最近在工作中运营的同事针对后台的富文本编辑器提出了一些问题,在使用的过程中,如果内容过长在编写内容后对内容进行排版的时候很不方便,看不到富文本工具栏,如下图:

1616936846594677.png


之前也遇到过这样的问题,使用了css方式去解决啦,详情见文章《layui后台布局与百度富文本(ueditor)兼容性问题处理方案》,和运营的同事聊了一下,发现通过css的解决方式并不是完美的解决办法。继续研究~~


经过查看富文本的js代码文件,找到针对工具栏位置监听的代码。结合个人分析准备使用js方式来解决。


通过获取富文本编辑器距离顶部的距离来动态设置样式,进入ueditor.all.js,跳转到17554行,找到

unsetFloating方法。如下图:  


1616937222491174.png


这里圈红了两个方法,通过方法名称可以理解成设置浮动取消浮动,然后我们看一下17554行的updateFloating更新浮动,这个方法在17594行存在调用。看一下调用的代码,很清晰的可以看到这是一个监听的方法,如果出现滚动或窗口大小变化,便会调用更新浮动方法。如下图:

image.png


通过代码我的想法是如果富文本距上的高度小于100,为什么是100呢?layui的后台顶部高度是60像素,我这里设置成100像素,是为了在上面有一个缝隙,更能体现浮动的效果。下面一起来看一下代码的解决方法:


一、更改ueditor.all.js文件


备注:此方法需要使用jQuery!!!!!

$(".layui-body").scroll(function () {
   var container = $("#container").offset().top;
   if(container > 100){
      unsetFloating();
   }else{
      setFloating();
   }
})


二、更改ueditor.config.js

进入文件,跳转至292行代码或者搜索“topOffset”,将注释去掉,将数值改成70

image.png


备注: #container这个ID是在引入富文本是设置的,如下:

<!-- 配置文件 -->
<script type="text/javascript" src="/路径/ueditor.config.js"></script>
<!-- 编辑器源码文件 -->
<script type="text/javascript" src="/路径/ueditor.all.js"></script>
<!-- 实例化编辑器 -->
<script>UE.getEditor('container');</script>



评论
登录后才可以进行评论哦! QQ登录
验证码
评论内容