nutui-react icon indicating copy to clipboard operation
nutui-react copied to clipboard

[FR]: Menu 露白也不算BUG了,摸清原因了,但希望能能让popup overlay组件能自定义挂载到描写区域

Open codedart2018 opened this issue 2 years ago • 4 comments

这个不算BUG了,但这样确实难受。一开始我以为是写的bug,后来我又试了别的组件,也有这个情况。再后台我自己写内容滑动懎才发现使用transform 再看tabs也使用了 transform 定位使用abslute 或fixed 会创建一个块,指的是距离元素最近的祖先元素的内容区。就是我前面箭头指的。这也是我去看transform 的元素解释的理解。

所以解决办法就是把Overlay挂载到transform节点以外去,参见antd它的popup modal 组件均可以挂载到body里或body以外的区域去。或按antd 提供的props去挂载到指定地点去

但我希望popup overlay组件加个功能能自定义挂载点。我们自己选择挂载点可以解决掉此问题。从此它fixed top 怎么都不会有问题。望解决!

这个功能解决了什么问题?

简单代码

  const [options] = useState([
    { text: '全部商品', value: 0 },
    { text: '新款商品', value: 1 },
    { text: '活动商品', value: 2 },
  ]);

  return (
    <Tabs>
      <Tabs.TabPane title='AAAAA'>
        <View style={{ height: 500 }}>
          <Menu>
            <Menu.Item options={options} value={0} />
          </Menu>
        </View>
      </Tabs.TabPane>
    </Tabs>
  );
image image

如果Menu 不是套在Tabs.Tabpane里则没有问题。一套进去就会在 nut-menu上顶出一个top高度导致露白。

你期望的组件设计是怎样的?

期望修复这个问题。

codedart2018 avatar Sep 13 '23 18:09 codedart2018

我又看了下这里的fixed 顶起来它不是基于容器根部顶起来的,而是从tabs.pane 的content内容区域顶起来的,这就有问题了。 image

我看了下节点发现每个memu.item内都嵌套了Overlay组件,我觉得该组件应该放到父组件Menu里去,不论我有多少个Item它都只能共用一个Overlay

codedart2018 avatar Sep 14 '23 03:09 codedart2018

如果我把内容拿出 Tabs.Tabpane 则不会出现问题。但我觉得像我这种布局情况也是比较常见的,应用也比较广泛。

codedart2018 avatar Sep 14 '23 03:09 codedart2018

这个不算BUG了,但这样确实难受。一开始我以为是写的bug,后来我又试了别的组件,也有这个情况。再后台我自己写内容滑动懎才发现使用transform 再看tabs也使用了 transform 定位使用abslute 或fixed 会创建一个块,指的是距离元素最近的祖先元素的内容区。就是我前面箭头指的。这也是我去看transform 的元素解释的理解。

所以解决办法就是把Overlay挂载到transform节点以外去,参见antd它的popup modal 组件均可以挂载到body里或body以外的区域去。或按antd 提供的props去挂载到指定地点去

但我希望popup overlay组件加个功能能自定义挂载点。我们自己选择挂载点可以解决掉此问题。从此它fixed top 怎么都不会有问题。望解决!

codedart2018 avatar Sep 14 '23 14:09 codedart2018