【问题记录】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);
        });
    },
    ...
});
相关推荐
糕冷小美n11 小时前
elementuivue2表格不覆盖整个表格添加固定属性
前端·javascript·elementui
爱上妖精的尾巴12 小时前
8-10 WPS JSA 正则表达式:贪婪匹配
服务器·前端·javascript·正则表达式·wps·jsa
shadow fish13 小时前
react学习记录(三)
javascript·学习·react.js
小疙瘩13 小时前
element-ui 中 el-upload 多文件一次性上传的实现
javascript·vue.js·ui
程序员林北北14 小时前
【前端进阶之旅】JavaScript 一些常用的简写技巧
开发语言·前端·javascript
全栈前端老曹14 小时前
【Redis】Redis 持久化机制 RDB 与 AOF
前端·javascript·数据库·redis·缓存·node.js·全栈
NEXT0614 小时前
受控与非受控组件
前端·javascript·react.js
NEXT0614 小时前
防抖(Debounce)与节流(Throttle)解析
前端·javascript·面试
呆子小木心16 小时前
Vue2或Vue3项目引用百度地图
javascript·vue.js·typescript·前端框架·html5
兆子龙17 小时前
深入 ahooks 3.0 useRequest 源码:插件化架构的精妙设计
javascript·面试