【问题记录】tinyMCE工具栏弹窗滚动页面定位不正确问题处理

问题

遇到一个dialog弹窗中tinyMCE富文本组件的操作栏在页面滚动时的展示问题。操作栏弹窗位置没有跟随富文本组件进行跟随滚动,而是固定不动,展示存在问题。

排查

tinyMCE在项目不是第一次使用。比较了正常展示的页面后,发现了两者的差异,正常的是在主页面中进行使用,现在发现问题的是在dialog弹窗中。 对页面元素进行检查发现,承载操作栏的div父节点都是挂载在html.body下面:

发现问题,当在dialog中使用tinyMCE时,操作栏在做绝对定位,是在相对html.body下的父级元素做定位,导致在dialog中滚动时无法做到准确的位置计算。

解决

在编辑器初始化完成后将操作栏父级节点从html.body移至与编辑器同级节点

js 复制代码
tinyMCE.init({
    ...,
    setup: function(editor) {
        editor.on('init', function() {
            const container = editor.getContainer();
            const toxContainer = document.querySelector('body > .tox.tox-tinymce-aux');
            container.parentNode.appendChild(toxContainer);
        });
    },
    ...
});
相关推荐
葛兰岱尔10 小时前
从 SolidWorks 到 Three.js,从 Inventor 到 Unity——制造业CAD模型“几何-语义一体化“转换,不再是天方夜谭!
开发语言·javascript·unity
zzqssliu10 小时前
基于Laravel + Express.js的代购系统多语言多货币架构设计
javascript·express·laravel
水煮白菜王10 小时前
高德地图"未获得商用授权"水印临时移除方案
前端·javascript
chushiyunen10 小时前
vue el-pagination实现分页
javascript·vue.js·elementui
by————组态10 小时前
Ricon组态可视化编辑器 - 所见即所得的工业画布
前端·javascript·物联网·架构·编辑器·组态
光影少年10 小时前
react大列表优化:虚拟列表原理
前端·javascript·react.js
如烟花的信页10 小时前
外贸*登录逆向分析
javascript·爬虫·python·js逆向
wanger6111 小时前
Vue学习笔记
前端·javascript·vue.js
大大杰哥11 小时前
Vue2学习(3)--组件中的通信方式/组件之间的交互
java·前端·javascript
PixelBai11 小时前
JSON过滤使用教程:从入门到精通
javascript·chrome·json