保持视口或窗口宽度中的绝对元素(下拉菜单)
Keep absolute element (dropdown-menu) in viewport or window width
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">DROPDOWN <span class="caret"></span></a>
<ul class="dropdown-menu menu-multicolumn">
<li class="menu-column">
<ul>
<li class="menu-column-title">Multi Page</li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
<li class="menu-column">
<ul>
<li class="menu-column-title"></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
<li class="menu-column">
<ul>
<li class="menu-column-title">One Page</li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
<li class="menu-column">
<ul>
<li class="menu-column-title"></li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</li><!-- End of dropdown -->
Css
.dropdown-menu {
background-clip: padding-box;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.176);
display: none;
float: left;
font-size: 14px;
list-style: outside none none;
margin: 2px 0 0;
min-width: 160px;
padding: 5px 0;
position: absolute;
text-align: left;
top: 100%;
z-index: 1000;}
.menu-multicolumn {
white-space: nowrap;
width: auto !important;}
.menu-column {
display: inline-block;
float: none;
overflow: hidden;
vertical-align: top;
white-space: normal;
min-width: 190px;}
好的,所以现在我想用javascript来确定下拉菜单元素超出窗口宽度的程度,然后设置与left相同的宽度:-(那个宽度(;,因此,下拉菜单元素将具有灵活的左侧位置,并且将始终在窗口宽度内。
基本上,我需要确定有多少元素超出了窗口宽度,然后将相同的量设置为减去该元素的左绝对位置。
也许它的想法太简单了,但如果我给你正确的方法,并且你总是希望右侧保持在你的视口内,你可以简单地这样做:
.dropdown-menu {
position: absolute;
right: 0px;
left: auto;
}
你可以简单地将右侧的空间设置为零,而不是计算你应该在负边缘推动左侧多少!
相关文章:
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 第二个下拉菜单元素上的重复下拉Javascript效果
- Bootstrap下拉菜单不选择元素.需要下拉按钮组设计
- 如何使用选择下拉菜单更改元素
- 如果元素是在循环中创建的,则引导下拉菜单不会触发单击事件
- 哪个元素会影响我的jquery下拉菜单的位置-->使其正确运行
- 求和2个跨度元素中的两个值(用户可以通过下拉菜单选择每个跨度元素的值)
- 如何创建一个“;收藏夹栏”;通过将表格元素拖动到下拉菜单中
- 如何隐藏下拉菜单,如果我点击身体任何元素
- 当DOM元素被聚焦时隐藏下拉菜单
- HTML和需要下拉菜单来重叠元素
- 动态添加多个元素到web表单-下拉菜单
- 下拉菜单移动元素
- 带有下拉菜单的动态导航栏会干扰下拉菜单元素的宽度
- 如何在没有元素ID的下拉菜单中选择Javascript选项?
- ui-选择显示数组元素作为下拉菜单中的选项
- 使HTML表的三个元素成为下拉菜单
- 使用jQuery从下拉菜单中删除html元素
- 使用javascript在svg元素上创建下拉菜单
- 保持视口或窗口宽度中的绝对元素(下拉菜单)