如何在溢出隐藏父元素中显示绝对元素
How to show absolute element inside the overflow hidden parent element
结果如下:
<div parent-with-overflow-hidden>
<div absolute-position></div>
</div>
真正的上下文是使用下拉菜单引导
<div overflow-hidden>
<div class="dropdown">
<button>Click to show menu</button>
<ul class="dropdown-menu">Menu</ul>
</div>
</div>
,我不能显示整个menu
。
如何显示子div而不将其移出父div ?
使用position:absolute
不会将其从overflow-hidden
中取出。所以你需要用position:fixed
覆盖它。它将从它拥有的任何父/祖父母中获取.dropdown-menu
。
那么你需要设置top
的位置取决于父元素的height
,也就是overflow-hidden
div。
之后,你需要动态地重新计算top
的位置,同时滚动页面,使下拉菜单保持在相同的位置
让我知道它是否有效;)
参见下面的代码片段或fiddle> 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>
相关文章:
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 使用漂亮的照片点击另一个元素显示图像
- 我将如何在 HTML 中将数组中的所有元素显示为可点击的对象
- 使元素显示在最小屏幕大小上
- 更好的做法是通过CSS类或直接(通过DOM)修改HTML元素显示
- 如何在YouTube视频前制作元素显示
- 使隐藏元素显示 X 秒
- 如果元素显示:无;在媒体查询中,它们是否仍然加载
- 无法为每个元素显示高图
- 如何使用 jQuery 逐个元素显示
- 使用 jQuery 画布元素显示 Hiddin Div
- '李'mouseover事件被child'a'元素显示块
- JQuery元素显示/隐藏和控制流
- D3在工具提示上将内部列表的元素显示为不同的行
- AngularJS-动态创建<text区域>使用ngSanitize不会't显示(其他元素显示)
- 如何根据单击的元素的位置使元素显示在右侧或左侧
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- 当我再次单击时,它显示none,高度回到0px,但里面的元素显示,不显示none或离开页面
- 将一个元素显示在另一个元素的顶部,并在其上禁用鼠标悬停事件
- reactjs:为什么在render中定义的一些dom元素显示两次