You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap导航栏:空间不足时将溢出菜单项纳入下拉菜单的实现咨询

Bootstrap导航栏:空间不足时将溢出菜单项纳入下拉菜单的实现咨询

看起来你已经找到了一个相当实用的解决方案!这个思路完美契合了「空间不足时自动把溢出的Bootstrap导航栏菜单项收纳到下拉菜单」的需求,实际运行效果也完全符合预期对吧?

我帮你把代码整理成更清晰的格式,方便后续维护和参考:

JavaScript 核心逻辑

const contentBar = document.querySelector(".context-bar")
const dropdown = document.querySelector(".grouped-content")

const update = () => {
  const offsetTop = contentBar.offsetTop
  dropdown.innerHTML = ""

  document.querySelectorAll(".context-bar > a").forEach((item) => {
    if (item.offsetTop > offsetTop) {
      let li = document.createElement("li")
      li.innerHTML += item.outerHTML
      dropdown.appendChild(li)
    }
  })
}

update()
window.addEventListener("resize", update)

配套样式参考

/* 配合核心逻辑的基础样式,可结合Bootstrap原生样式调整 */
.context-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  /* 可补充Bootstrap导航栏的默认样式继承 */
}
.grouped-content {
  list-style: none;
  padding: 0;
  margin: 0;
  /* 结合Bootstrap dropdown组件的样式,确保下拉菜单正常渲染 */
}

这个实现的核心思路特别巧妙:通过对比每个菜单项的offsetTop和导航栏容器的offsetTop,精准判断菜单项是否因为空间不足被挤到了下一行(也就是发生了溢出),然后动态把这些溢出项转移到下拉菜单中。同时监听窗口 resize 事件,保证窗口大小变化时能实时更新菜单状态,细节考虑得很周全。

备注:内容来源于stack exchange,提问作者Meek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:18:08