【发布时间】:2015-10-04 17:33:41
【问题描述】:
我正在尝试在我的页面上创建一个“粘性”导航,一旦用户滚动到该元素,div 就会获得position:fixed;。该功能按预期工作,但是一旦添加了粘性类,应该粘在顶部的两列的宽度会发生变化。我尝试将 width:100%; 添加到粘性元素的 CSS 中,但随后该元素会扩展到容器之外。
当添加position:fixed; 时,如何确保列宽保持在应有的位置?
HMTL:
<div class="container">
<div class="padding"></div>
<div class="anchor"></div>
<div class="row sticky">
<div class="col-sm-6">
Testing
</div>
<div class="col-sm-6">
Testing
</div>
</div>
<div class="padding2"></div>
</div>
CSS:
.padding {
height:250px;
}
.padding2 {
height:1000px;
}
.sticky {
background:#000;
height:50px;
line-height:50px;
color:#fff;
font-weight:bold;
}
.sticky.stick {
position:fixed;
top:0;
z-index:10000;
}
JS:
function stickyDiv() {
var top = $(window).scrollTop();
var divTop = $('.anchor').offset().top;
if (top > divTop) {
$('.sticky').addClass('stick');
} else {
$('.sticky').removeClass('stick');
}
}
$(window).scroll(function(){
stickyDiv();
});
stickyDiv();
JSFiddle
谢谢!
【问题讨论】:
-
您可以在页面加载时使用 Javascript 获取粘性元素的宽度,然后在添加固定定位后使用 JS 设置元素的宽度。不确定是否可以使用直接的 HTML/CSS 来完成。
标签: css twitter-bootstrap css-position