【发布时间】:2014-07-17 07:40:26
【问题描述】:
我正在开发一个带有粘性侧边栏的网站。侧边栏只会固定在滚动窗口上。
问题是,当我向下滚动窗口并到达页面底部时,边栏将与页脚重叠,因为边栏是固定的。
我希望,当用户到达页面底部时,侧边栏停止滚动,如果用户正在滚动页面顶部,它应该再次开始滚动。
您可以在下面查看我的代码,也可以查看fiddle here。
脚本
<script>
$(window).scroll(function(){
var contPos = $('.sidebar').offset().top;
var containerHeight = $('.container').height();
var heightOfWindow = $('body').height();
var topOfWindow = $(window).scrollTop();
if (contPos < topOfWindow) {
$('.sidebar').css('margin-top',''+topOfWindow+'px');
}
});
</script>
HTML
<div class="header">Header</div>
<div class="sidebar">asd</div>
<div class="container">Contaier</div>
<div class="footer">Footer</div>
CSS
.header{height:100px; text-align:center; font-size:35px; color:#000; background:#999;}
.container{overflow:auto; padding:15px; background:#CCC; height:1000px; margin:0 0 0 300px;}
.sidebar{width:300px; height:700px; float:left; background:red;}
.footer{height:100px; text-align:center; font-size:35px; color:#000; background:#999;}
【问题讨论】:
-
为什么要使用javascript?在我看来,您想为侧边栏使用类似
position:fixed的东西 -
“侧边栏停止滚动,如果用户正在滚动页面顶部,它应该再次开始滚动” - 如果它滚动,那么“固定”是什么意思?您在哪里尝试创建类似this 的东西?我没有得到你想要做什么。
-
我希望当用户到达页面底部时侧边栏不会超过页脚......当用户从页面底部滚动到顶部时,侧边栏应该开始浮动。
标签: jquery html css scroll sidebar