【发布时间】:2016-12-01 00:14:54
【问题描述】:
我有一系列按钮,每个按钮都有自己的按钮组类,带有一个下拉菜单:
我搜索了大量的堆栈溢出和谷歌链接。我尝试将 z-index 更改为更高的值,尝试更改 css 位置属性,甚至使用 onclick 方法调整容器 div 的大小,但效果不太好。
单击按钮时,我希望按钮所在的 div 调整大小。为此, div 和下拉列表必须是相对的(似乎是最简单的方法)。如您所见,div 调整了大小,但所有按钮组也是相对的,因此它们也四处移动。
我希望下拉菜单在其所属按钮的正下方打开,并在必要时与其他按钮重叠,同时不影响它们的位置。我从another user 复制了一个JS Fiddle,它展示了我的问题:当第一个按钮的下拉菜单打开时,第二个按钮被移动(该用户对另一个功能感兴趣)。
我今天需要继续进行另一个项目,而且我现在没有太多时间可以投入到这个工作中,感谢任何提示让我走上正轨。 JSFiddle 中使用的代码:
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2 class="bold">Scrollable Menu</h2>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Scrollable Menu <span class="caret"></span></button>
<ul class="dropdown-menu scroll-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Non Scrollable Menu <span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
</ul>
</div>
</div>
</div>
</div>
更新 看起来在页面加载下拉菜单(带有可滚动菜单类的“ul”元素)已经存储了它们的高度信息
在文档准备就绪时,我循环并使用此代码创建所有这些元素:
$("#buttonBody").append('<div class="btn-group">
<button id='+state+' type="button" onclick=resize(this.id) style="border-radius:24px;"
class="btn btn-lg btn-primary dropdown-toggle" data-toggle="dropdown">'+state+'<span class="caret"></span></button>
<ul id="'+state+'dropdown" role="menu" class="dropdown-menu scrollable-menu" style="max-height:200px; height:auto; overflow-y:scroll;" aria-labelledby="'+state+'"></ul>
</div>');
我循环并附加“li”元素以填充下拉列表。
【问题讨论】:
-
您的期望是什么?手绘?
-
您的代码运行良好...bootply.com/7EhVnY6ZTE#
-
@Chiller 我添加了
ul.scroll-menu{ overflow-y:scroll; max-height:200px; },是的,它似乎正在工作...... -
@Chiller 将以下内容添加到 css:
ul.scroll-menu{ overflow-y:scroll; max-height:200px; } div{ background-color:red; }给我留下了一个不会改变其他按钮位置的可滚动菜单,但它也不会更新封装 div 元素的高度,因为可滚动菜单的位置不是相对的。我希望它影响 div,同时不理会其他按钮。 -
你能举个例子吗!
标签: css twitter-bootstrap drop-down-menu