您是否曾尝试为您的按钮创建一个下拉列表,然后选择但随后被溢出隐藏阻止?
然后你该怎么做,然后你使用javascript将元素扔到DOM的根目录,然后根据触发元素矩形定位元素,每次布局更改时重新计算,发生滚动和调整窗口大小,不是很有效的。
首先我想说的是它还没有完全支持,但是现在有一个polyfill可以解决这个问题。
我们要依赖的两个主要功能是
锚定位
弹出窗口
所以当我看到对话框被发送到根但带有 DOM 层时,我最初的想法就出现了。我偶然发现了 popover api,你基本上得到了相同的逻辑,但行为略有不同。
我还记得看到一篇关于将元素锚定到范围滑块上的拇指的帖子。
然后我想基本上你想对任何需要打破溢出隐藏的下拉菜单/工具提示等做什么,如果你混合两者,你不需要所有过多的javascript。
所以这是支持它的浏览器中的工作演示
好吧,如果你今天想使用它怎么办。好吧,我们可以使用一个polyfill。
oddbird/css-anchor-positioning polyfill
它有很好的浏览器支持
尝试访问非polyfill示例中未提及的浏览器,下面的示例有效,我亲自测试了最新版本的safari和firefox
这意味着,在大多数浏览器中,我们将有额外的计算开销,但当我们有足够的兼容性时,它很容易使用和关闭。
这种方法有一个问题,那就是 polyfill 的大小约为 92kb,因此会对加载产生影响,但您可以在应用程序/网站完成任何重要操作后延迟加载它
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3