使用position:absolute
不会从overflow-hidden
中得到它的父母。所以你需要用position:fixed
来覆盖。它将从其拥有的任何父母/祖父母中获得.dropdown-menu
。
那么你需要设置top
的位置取决于父母的height
,这是overflow-hidden
股利。
之后,你需要动态重新计算top
位置,同时滚动页面,这样的下拉停留在同一位置
让我知道,如果它的工作原理;)
看到片段下面或小提琴>jsfiddle
var oHeight = $('.ohidden ').height()
$('.dropdown-menu').css('top',oHeight)
//dropdown remain `glued` to the button on scroll
$(window).on("scroll",function(){
var wScroll = $(this).scrollTop()
$('.dropdown-menu').css('top',oHeight-wScroll)
})
.ohidden { overflow:hidden}
.dropdown-menu { position:fixed!important;}
body { height:2000px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="ohidden">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
Click to show Menu
</button>
<ul class="dropdown-menu">
<li><a href="#">ITEM 1</a></li>
<li><a href="#">ITEM 2</a></li>
<li><a href="#">ITEM 3</a></li>
</ul>
</div>
</div>
你能编辑你的问题来显示你有这些元素的CSS吗? –
@RyanHipkiss我的情况看起来像下面Mihai评论 – tmhao2005