将 MUI 工具提示放置在容器内,使其不会溢出到容器之外

2024-04-17

在此输入图像描述 https://i.stack.imgur.com/gKP8k.jpg

例如- 在此图像中,当我将鼠标悬停在左侧的按钮(单击)上时,工具提示将离开红色边框容器。

右侧按钮也会发生同样的情况。

我想动态更改工具提示位置,以便在这两种情况下它都保留在容器内。

p.s - stackoverflow 新手。如有不对请见谅。

提前致谢。

<Tooltip
  title=“aaa”
  arrow
  placement=“bottom”
 >
<button> click </button>
</Tooltip>

这是 MUI 工具提示的代码。我尝试寻找可以帮助我解决此问题的道具,但失败了。


您可以通过访问PopperProps in the Tooltip成分。

这方面的文档有点隐藏,但是Tooltip可以访问所有MUIPopper 组件属性 https://mui.com/material-ui/api/popper/,其中包含popperOptions。在 API 属性定义中Popper组件,MUI 会向您推荐 popper.js 文档。这些文档将告诉您如何申请PopperProps以获得不同的行为。查看popper.js.org https://popper.js.org/欲了解更多信息。

const boundingElement = useRef();
[...]
<div
  ref={boundingElement}
>
  <Tooltip
    title="Tooltip Tooltip Tooltip Tooltip Tooltip"
    PopperProps={{
      popperOptions: {
        modifiers: [
          {
             name: "preventOverflow",
             options: {
               boundary: boundingElement.current
             }
          }
        ]
      }
    }}
  >
    <div>Tooltip Hover Div</div>
  </Tooltip>
</div>

编辑:2023 年 9 月

有人指出,引用不会填充在初始渲染中,导致工具提示超出范围,直到执行另一次渲染为止。我解决这个问题的方法是在第一次渲染后使用forceUpdate https://legacy.reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdateReact 文档中的方法。它似乎正在工作(代码沙箱 https://codesandbox.io/s/tooltip-overflow-prevention-xq3pzs?file=/src/App.tsx)。如果有人有更好的方法在第一次渲染时定义参考,请编辑。

const boundingElement = useRef();
const [, forceUpdate] = useReducer(x => x + 1, 0);
  
useLayoutEffect(() => {
  forceUpdate()
}, [])

[...]

<div
  ref={boundingElement}
>
  <Tooltip
    title="Tooltip Tooltip Tooltip Tooltip Tooltip"
    PopperProps={{
      popperOptions: {
        modifiers: [
          {
             name: "preventOverflow",
             options: {
               boundary: boundingElement.current
             }
          }
        ]
      }
    }}
  >
    <div>Tooltip Hover Div</div>
  </Tooltip>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 MUI 工具提示放置在容器内,使其不会溢出到容器之外 的相关文章

随机推荐

  • 如何在 Swift 中访问深度嵌套字典

    我的应用程序中有一个非常复杂的数据结构 我需要对其进行操作 我正在尝试跟踪玩家的花园中有多少种错误 虫子有十种 每种有十种图案 每种图案有十种颜色 因此可能存在 1000 个独特的错误 我想跟踪玩家拥有的每种类型的错误数量 嵌套字典如下所示
  • WPF MVVM EF 简单示例

    当我正在努力将数据插入视图模型时 我希望有人可以帮助我开始这个简单的 WPF MVVM 示例 我有一个 SQL 表温度 其中每个记录都有一个时间戳 然后是一个数值 例如 记录时间 温度2013年1月1日 00 00 6001 01 2013
  • 如何在多个Lua State(多线程)之间传递数据?

    我在中启动Redis连接池redis lua 通过从 C 调用 我得到了redis lua state 此 Lua 状态全局启动一次 仅在其他线程中启动get从中 当有一个 HTTP 请求 工作线程 时 我需要从redis lua stat
  • 将角度定量数据转换为定性图像

    我是一名晶体学家 试图从多达 5000 个文件中分析晶体方向 Matlab 能否转换表格中的角度值 如下所示 进入一个看起来像这样的表 这是一个基于 Lakesh 想法的更具体的例子 然而 这将处理任意数量的旋转 首先从中间有一条带的基本圆
  • 如何将地名词典或词典表示为 crf++ 中的特征?

    如何使用地名词典或词典作为功能CRF https taku910 github io crfpp 详细说明 假设我想对人名进行 NER 并且我有一个包含常见人名的地名词典 或字典 我想使用这个地名词典作为 crf 的输入 我该怎么做 我正在
  • 使用来自不同模块的 python 装饰器函数

    我想使用另一个模块中的函数作为装饰器 但我需要它来操作当前模块的全局命名空间 例如 我希望能够从这里开始 class SomeClass pass root SomeClass to this from othermodule import
  • 什么时候可以比较 C++ 中同一对象的指针?

    例如 我有一些类层次结构 可能具有各种继承 公共 私有 公共虚拟 多重继承等 class A int a public virtual A class B public A int b class C public virtual B in
  • iphone - 什么消耗更少的电池?开始监控位置更改或开始监控区域?

    我希望您向我提供关于哪种方法消耗更少电池的反馈 我的应用程序将在后台运行 并会随着位置变化而唤醒 所以我想使用消耗更少电池的方法 有什么想法吗 Thanks 这些选择都不会增加或减少电池消耗 为了让您的应用收到任何位置更新的通知 无论是区域
  • 在java中查找(hh mm ss)格式的平均时间

    我想以 hh mm ss 格式计算三个时间的平均值 我尝试了以下代码 public String calculateAverageOfTime String timeInHHmmss 08 00 00 08 00 00 08 00 00 S
  • 处理获取响应的正确方法是什么

    我有以下用于处理 Magento 2 REST API 的代码 return new Promise resolve reject gt fetch uri method headers body JSON stringify data t
  • Nokogiri 本机扩展无法构建(不是 libxml2 或 libxslt 缺失问题)

    正如标题所示 它似乎并没有因为缺少 libxml2 或 libxslt 而失败 我不太确定该做什么make的错误 明白了吗 因为问题出在make期间 呵呵 无论如何 这是我得到的输出 任何想法 将不胜感激 Building native e
  • Mvc RenderAction 性能与 RenderPartial

    您好 我想知道 mvc C s 渲染操作是否与直接调用我的评论中的部分一样有效 如果不是 那么效率有多低 RenderAction肯定会慢于RenderPartial 差异取决于子操作相对于父操作执行的额外工作量 对于非常简单的子动作 差异
  • 为什么jdk代码风格使用变量赋值并在同一行读取 - 例如。 (i=2) < 最大值

    我注意到 在 jdk 源代码中 更具体地说 在集合框架中 优先选择在表达式中读取变量之前分配变量 这只是一个简单的偏好还是有一些我不知道的更重要的事情 我能想到的原因之一是该变量仅在该表达式中使用 由于我不习惯这种风格 所以读起来很困难 代
  • .rdlc 报告:页面上的两列文本

    如何将页面上的文本分成两列 rdlc报告 例如如图所示 https i stack imgur com 5mo1x gif https i stack imgur com 5mo1x gif 您可以设置Columns and ColumnS
  • RGB空间中不同颜色的识别范围是多少?

    如何以编程方式确定给定像素是否为黄色 还是红色 或者其他颜色 红色在RGB空间中通常是 255 0 0 但我们也知道 230 0 0 也会出现红色 是否有任何标准将 RGB 空间分成八种主要颜色 红 绿 蓝 黄 洋红 青色 黑色和白色 在
  • 在 Linux 上使用“libc++”编译时,未定义对“__cxa_thread_atexit@@CXXABI”的引用

    我正在尝试编译我的项目Arch Linux x64 using libc libc abi and 铿锵 3 6 0 项目编译正确 但无法链接并出现以下错误 错误 CMakeFiles main cpp o 对符号 cxa thread a
  • 如何制作“透视”文字?

    I have body with a background image and a div with background color作为白色 我正在尝试制作有关该内容的文字div 这就是所谓的 content 看透 让文字就像是网站背景的
  • 从传递给分部视图的嵌套复杂对象中获取值

    我有一个 ViewModel 它的成员之一是一个复杂的对象 复杂对象有 4 个属性 都是字符串 我正在尝试创建一个可重用的部分视图 我可以在其中传递复杂的对象并让它使用 html 帮助器为其属性生成 html 这一切都很好 但是 当我提交表
  • Postgresql:对 2 列联合的唯一约束

    我有以下表格 交易 id amount 1 100 2 100 3 250 4 250 TRANSACTION LINKS id send tx receive tx 1 2 1 2 4 2 The send tx and receive
  • 将 MUI 工具提示放置在容器内,使其不会溢出到容器之外

    在此输入图像描述 https i stack imgur com gKP8k jpg 例如 在此图像中 当我将鼠标悬停在左侧的按钮 单击 上时 工具提示将离开红色边框容器 右侧按钮也会发生同样的情况 我想动态更改工具提示位置 以便在这两种情