可滚动包装器剪切掉绝对元素

Scrollable wrapper cuts out absolute elements

提问人:MoDrazzz 提问时间:11/16/2023 最后编辑:MoDrazzz 更新时间:11/16/2023 访问量:39

问:

我遇到了一个问题,即切断可滚动列表的相对子项的绝对子项。

我的问题: https://youtu.be/uz5wmLEM04A
Live prototype: https://jsfiddle.net/n0dowLhz/
我的代码 (REACT): https://github.com/MoDrazzz/teamguru/blob/team-page/src/components/Teams/TeamMembers.tsx#L30-L34

这里也描述了这个问题。通过他们实施的四处走动,当菜单处于活动状态时,滚动后它会保持在同一位置。

解决方案是使菜单可见,无论溢出设置为自动。

<!-- Has overflow: auto; --->
<ul>
  <li>
    <p>Some content</p>
     <!-- Must be relative --->
    <div>
      <button>Menu toggler</button>
      <!-- Absolute --->
      <div>Menu</div>
    </div>
  </li>
</ul>
HTML CSS ReactJS 溢出

评论

0赞 CBroe 11/16/2023
“通过他们实施的四处走动,当菜单处于活动状态时,滚动后它会保持在同一位置。”- 你能澄清一下这意味着什么吗?根据你的小提琴,我很难弄清楚问题应该是什么。
0赞 MoDrazzz 11/16/2023
在链接的文章中,提出了类似的问题。为了解决这个问题,作者使用 javascript 定位菜单。问题是当用户滚动列表时,菜单处于同一位置。

答:

1赞 iamalinski 11/16/2023 #1

弹出元素被剪切的原因是溢出是隐藏的解决此问题的方法是将弹出元素放在容器外部(可能在正文元素中的某个位置),并在单击时将其放置在菜单上

编辑

重要的是在显示弹出菜单时禁用任何页面/容器滚动,并在弹出窗口隐藏时启用滚动

评论

0赞 MoDrazzz 11/16/2023
你是对的!但是你有没有注意到,在我向上/向下滚动后,菜单会保持在旧位置(点击后设置的位置)?
0赞 iamalinski 11/16/2023
诀窍是,当您打开菜单时,您必须禁用滚动:)
0赞 MoDrazzz 11/16/2023
聪明!我会试一试:)
0赞 iamalinski 11/16/2023
@MoDrazzz如果我的回答解决了您的问题,请投票并接受它,以便其他用户可以轻松解决类似的问题。