如何在 y 轴上偏移 Material-UI Popper(popper.js 库)位置?

Sim*_*ong 4 javascript css reactjs material-ui popper.js

在此处输入图片说明

我正在使用 material-ui (v 4.9.5)Popper作为上面的“弹出”菜单。它anchorElementListItem在左侧选择的。我希望Popper与主菜单的顶部齐平。但是它看起来短了 5px。

如果我查看 Chrome Dev Tools,我会看到以下内容,参数中的5pxtranslate3d就是问题所在。如果我将值更改为0pxDev Tools 中的值,问题就解决了。

在此处输入图片说明

我的问题是如何通过代码实现这一点。我已经尝试了以下modifiers用于底层popper.js 的方法,但它什么也没做

 <Popper
    modifiers={{
        offset: {
         enabled: true,
         offset: '-5, 0'
    },
    }}
    className={globalMenuStyle.popperStyle}
    placement="right-end"
    open={isPopoverOpen}
    onClose={handleHidingGlobalMenu}
    anchorEl={anchorElement}>
    {popoverMenuItems}
 </Popper>
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,如果我尝试这样的事情并尝试 x 轴,modifiers它会沿着 x 轴移动。为什么 x 轴有效而 y 轴无效?

modifiers={{
   offset: {
    enabled: true,
    offset: '0, 50'
},
}}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

小智 18

Material UI 5.0 及更高版本使用 Popper 2.0,其语法略有不同。

<Popper
    modifiers={[
      {
        name: "offset",
        options: {
          offset: [0, 50],
        },
      },
    ]}
  >
  </Popper>
Run Code Online (Sandbox Code Playgroud)


小智 8

使用popperOptionsprop 向 popper.js 实例提供选项 obj ,如下所示:

<Popper
   popperOptions={{
      modifiers: {
         offset: {
             offset: '-5,0',
         },
      },
    }}
    ....
</Popper>
Run Code Online (Sandbox Code Playgroud)