jquery - bootstrap 下拉菜单重叠包装 div

标签 jquery css twitter-bootstrap

允许 Bootstrap 按钮下拉菜单与包含的 div 重叠的正确方法是什么?包含的 div 有 overflow-y:scroll。当前的问题是当显示包含下拉内容时,内容停留在可滚动的 div 中。

尝试使用下拉菜单的绝对定位,将 position css 更改为 fixed 确实允许重叠。这是正确的方法吗?

这是 jsfiddle 演示: http://jsfiddle.net/weaver_je/pA6cx/1/

位置为 fixed 的第一个按钮 (.btn1) 最接近所需的输出。

<div style="width:120px; height:150px; overflow-y:scroll;">
<div class="dropdown">
  <button class="btn dropdown-toggle btn1" type="button" id="dropdownMenu1" data-toggle="dropdown">
    Dropdown
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
    <li role="presentation" class="divider"></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
  </ul>
</div>

    <br/><br/>

<div class="dropdown">
  <button class="btn dropdown-toggle btn2" type="button" id="dropdownMenu1" data-toggle="dropdown">
    Dropdown
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
    <li role="presentation" class="divider"></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
  </ul>
</div>
</div>

$(".btn1").click(function (e) {         
    $(".dropdown-menu").css({
        position:"fixed",
        display: "block",
        left: e.pageX,
       top: e.pageY
    });

    return false;
});

$(".btn2").click(function (e) {           
    $(".dropdown-menu").css({
        position:"absolute",
        display: "block",
        left: e.pageX,
        top: e.pageY
    });

    return false;
});

最佳答案

仅通过 CSS 实现此目的的一种方法:

Bootstrap :http://jsfiddle.net/pA6cx/2/

CSS :

body > div > div.dropdown.open {
position: absolute;
}

仅可用于第一个按钮,我没有编辑第二个...

评论后: Jsfiddle:http://jsfiddle.net/fw522/2/

body > div > div.dropdown.open:hover{
position: absolute;
}

仅在鼠标悬停时设置为绝对位置

关于jquery - bootstrap 下拉菜单重叠包装 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379149/

相关文章:

javascript - 我怎样才能告诉动态插入的 &lt;script&gt; 标签……运行

javascript - 在 jQuery 中调用自定义属性

css - 按钮仅在 ios 设备(iphone 和 ipad)上看起来不同。这怎么能解决?

css - 如何垂直对齐方形按钮上的文本?

twitter-bootstrap - 如何在 Bootstrap 中将定价表居中?

html - 表单字段溢出 Bootstrap 表单

Jquery:如何让菜单向右而不是向左扩展

java - 使用 JavaFX SceneBuilder 自定义字体

javascript - 事件模式 Bootstrap 后无法更改 td 中的值

javascript - jQuery 等效于 getElementsByClassName ('name' )[n]?