使用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