如何更改 Bootstrap 4 个弹出窗口的位置?

How can I change the position of Bootstrap 4 popovers?

我正在尝试将 Bootstrap 4 个弹出窗口与其父按钮的左侧或右侧对齐。我知道我可以通过使用 "offset" 来实现它,但这意味着我必须为每个按钮设置不同的偏移值,因为它们的宽度永远不会相同。

有没有什么方法可以利用 popper.js(BS 用于定位)来实现对齐,而不是始终使弹出窗口居中?

For reference, this is the result I'm looking for

弄乱了一段时间后,我发现我可以通过使用偏移来实现我想要的,因为它不仅接受像素值,而且还接受相对于父对象的百分比。

所以我只是在做:

data-offset="-50%"

如果您在这里是因为您想在使用 react-bootstrap 时设置偏移量,下面是您的操作方法。通过将 popperConfig 属性 添加到 Dropdown.Menu 组件:

<Dropdown>
  <Dropdown.Toggle>
    Select Option
  </Dropdown.Toggle>
  <Dropdown.Menu
    popperConfig={{
      modifiers: [
        {
          name: 'offset',
          options: {
            offset: [0, 10],
          },
        },
      ],
    }}>
    <Dropdown.Item>Menu Item 1</Dropdown.Item>
    <Dropdown.Item>Menu Item 2</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

希望这对那里的人有所帮助。

@Oyalhi 的回答让我想到了以下想法:如果 Bootstrap 允许 'popperConfig' 属性,您还可以使用 'placement' 提供的选项 popper.js。事实上:以下代码适用于我使用 jQuery 和 Bootstrap 的弹出窗口 4. 在构建工具提示时,初始位置 'top' 被 'top-start' 覆盖。但是,您可能需要引入自己的 .css,因为 Bootstrap 没有为此展示位置提供样式。

$('#myElement').popover({
    placement: 'top', 
    content: "some random text",
    popperConfig: {
        placement: 'top-start'
    }
});