html - Bootstrap 下拉菜单被删减
问题描述
我目前正在尝试使用引导下拉功能实现可滚动的侧边栏。这样当用户点击侧边栏项目时,菜单应该出现在右侧。我能够使可滚动部分正常工作,但是当菜单中的文本很长时,下拉菜单会被剪切。我尝试更改 z-index 以便下拉菜单出现在顶部,但这也不起作用。如果我从中删除overflow:auto
它#sidebar
可以按预期工作,但我希望侧边栏可以滚动,所以这overflow
是必需的。
密码笔
解决方案
对于任何面临同样问题的人,我找到了一篇帮助我的文章:https ://css-tricks.com/popping-hidden-overflow/
因为如果垂直溢出是不可见的,我们就不能有可见的水平溢出,反之亦然。
$(function() {
// whenever we hover over a menu item that has a submenu
$('li.parent').on('mouseover', function() {
var $menuItem = $(this),
$submenuWrapper = $('> .wrapper', $menuItem);
// grab the menu item's position relative to its positioned parent
var menuItemPos = $menuItem.position();
// place the submenu in the correct position relevant to the menu item
$submenuWrapper.css({
top: menuItemPos.top,
left: menuItemPos.left + Math.round($menuItem.outerWidth() * 0.75)
});
});
});
.wrapper {
position: relative;
}
ul {
width: 200px;
max-height: 250px;
overflow-x: hidden;
overflow-y: auto;
}
li {
position: static;
}
li .wrapper {
position: absolute;
z-index: 10;
display: none;
}
li:hover > .wrapper {
display: block;
}
ul {
margin: 1em;
color: white;
font-family: sans-serif;
font-size: 16px;
}
li {
padding: 1em;
}
li ul {
margin: 0;
}
li .wrapper {
cursor: auto;
}
li .wrapper li {
padding: 0.5em;
}
li:nth-child(2n) {
background: #0e8ce0;
}
li:nth-child(2n+1) {
background: #0064b3;
}
li.parent {
background: #00b99b;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
<ul>
<li>Abc</li>
<li>Def</li>
<li>Ghi</li>
<li>Jkl</li>
<li class="parent">Mno >
<div class="wrapper">
<ul>
<li>Abc</li>
<li>Def</li>
<li>Ghi</li>
<li>Jkl</li>
<li class="parent">Mno >
<div class="wrapper">
<ul>
<li>Abc</li>
<li>Def</li>
<li>Ghi</li>
<li>Jkl</li>
<li>Mno</li>
<li>Pqr</li>
<li>Stu</li>
<li>Vw</li>
<li>Xyz</li>
</ul>
</div>
</li>
<li>Pqr</li>
<li>Stu</li>
<li>Vw</li>
<li>Xyz</li>
</ul>
</div>
</li>
<li>Pqr</li>
<li>Stu</li>
<li>Vw</li>
<li>Xyz</li>
<li class="parent">Abc >
<div class="wrapper">
<ul>
<li>Abc</li>
<li>Def</li>
<li>Ghi</li>
<li>Jkl</li>
<li>Mno</li>
<li>Pqr</li>
<li>Stu</li>
<li>Vw</li>
<li>Xyz</li>
</ul>
</div>
</li>
<li>Def</li>
<li>Ghi</li>
<li>Jkl</li>
<li>Mno</li>
<li>Pqr</li>
<li>Stu</li>
<li>Vw</li>
<li>Xyz</li>
</ul>
</div>
推荐阅读
- python - 带有 mysql 数据库条目的 Python HTML 网络聊天
- javascript - Datepicker 不适用于 bootstrap 4
- r - 如何修改 R 数据框以便 ggplot 可以读取坐标
- sql - Oracle SQL:如何在不同的组中分组相同的值
- c# - Rasa 在短语中获取一些关键字并返回自定义行
- database - 从 dbbrowser 中的 geopackage 中为 sqlite 选择几何
- cups - CUPS 打印服务器上的 Dymo LabelWriter Wireless - 无法正常工作
- reactjs - 如何在 React-Router-dom 中删除或更改历史记录?
- bash - Docker 运行找不到 ENTRYPOINT
- python - 当用户在 PyQt5 中的 QMessageox 上输入 Ok 时,如何不结束程序?