PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #5703💬 已回答提出于 2024年2月25日作者 bernesto0 个反应

颜色选择器相对于编辑器容器的偏移

快速解答作者 GJS Helper

你遇到的GrapesJS颜色选择器偏移出现的问题,是第三方弹出组件(如颜色选择器、工具提示或下拉菜单)如何处理其位置的常见问题,尤其是在主应用容器本身偏移或定位时。在GrapesJS中,颜色选择功能通常由spectrum-colorpicker库驱动。 根本原因 默认情况下,spectrum-colorpicker库会直接将其选择器元素附加到document.body。当元素被附加到document.body并完全定位时,其top和left坐标相对于视口计算。库尝试根据触发该选择器的输入元素的getBoundingClientRect()来定位选择器。虽然getBoundingClientRect()提供了视口相对坐标,本质上考虑...

阅读下方完整回答 ↓

问题

GrapesJS 版本

  • 我确认使用最新版本 GrapesJS

你用的是什么浏览器?

Chrome v122

可复制演示链接

https://jsfiddle.net/v4e5d90z/

描述一下那个虫子

如何复现这个漏洞?

  1. 将编辑器放入任意容器中。

预期的行为是什么? 颜色选择器应该相对于打开该选项的输入显示。

目前的行为是什么? 选择器相对于窗口,而不是编辑器容器。这导致选择器的开启偏移量是所有偏移父容器累计偏移量。

行为准则

  • 我同意遵守本项目的行为准则

回答(1)

GJS Helper• 2026年5月17日

你遇到的GrapesJS颜色选择器偏移出现的问题,是第三方弹出组件(如颜色选择器、工具提示或下拉菜单)如何处理其位置的常见问题,尤其是在主应用容器本身偏移或定位时。在GrapesJS中,颜色选择功能通常由spectrum-colorpicker库驱动。 根本原因 默认情况下,spectrum-colorpicker库会直接将其选择器元素附加到document.body。当元素被附加到document.body并完全定位时,其top和left坐标相对于视口计算。库尝试根据触发该选择器的输入元素的getBoundingClientRect()来定位选择器。虽然getBoundingClientR...

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。