百度编辑器UEditor全屏时按钮显示不全

jerry CMS 2015年09月20日 收藏

百度弄了个开源的在线编辑器 UEditor ,不管怎么样,总比wordpress中原始中的编辑器强,于是就试用了一下。

结果全屏的时候,最顶部Adminbar(管理工具栏),把UEditor中一排按钮给挡住了。最可气的是把,全屏的按钮挡住了。~~~哥点不回去了,这怎么行呢?

用Chrome的开发工具看了下,按钮其实还在,只是定位有点问题。

解决这个问题一共有三个思路:

1, 把wordpress中的管理工具栏隐藏起来。

2,把UEditor的zIndex 提高点,有可能是层的问题,因为adminbar的zIndex 是99999。

3,想办法自己算定位。改下js的源文件。

我呢,还想留着管理工具栏。然后尝试了一下zIndex,死活没有效果。然后就自己一路debug了下全屏按钮触发的事件代码,找到了答案。

方法:注释掉setViewportOffset函数(大概是2045行)中的几行代码就行了:

 setViewportOffset: function (element, offset){
            var left = parseInt(element.style.left) | 0;
            var top = parseInt(element.style.top) | 0;
            var rect = element.getBoundingClientRect();
            var offsetLeft = offset.left - rect.left;
            var offsetTop = offset.top - rect.top;
            if (offsetLeft) {
                element.style.left = left + offsetLeft + 'px';
            }
            /* 注释掉的
            if (offsetTop) {
                element.style.top = top + offsetTop + 'px';
            }*/
        }


这样顶部的工具栏还会留着,但是侧边栏会被盖住。这也正是想要的效果。

试了试,全屏啊,滚动条啊,各种情况下,没什么问题,应该是能work的。