当您向下滚动浏览器时,我有一个小的 jQuery 脚本来保持侧边栏可见。但是,侧边栏可能会变得很长,因为它会包含过滤器(下拉菜单和复选框),因此底部会被截断。
我想在这个网站上产生这样的效果:
在某种程度上,当侧边栏很长时,您仍然可以上下滚动。只有当它到达侧边栏的底部/顶部时,它才会变得固定。
有谁知道我在哪里可以得到一个完全做到这一点的脚本?
当您向下滚动浏览器时,我有一个小的 jQuery 脚本来保持侧边栏可见。但是,侧边栏可能会变得很长,因为它会包含过滤器(下拉菜单和复选框),因此底部会被截断。
我想在这个网站上产生这样的效果:
在某种程度上,当侧边栏很长时,您仍然可以上下滚动。只有当它到达侧边栏的底部/顶部时,它才会变得固定。
有谁知道我在哪里可以得到一个完全做到这一点的脚本?
以您可以轻松引用您想要避免冲突的对象的方式设置您的 CSS 和 HTML 标记。创建条件语句以比较所述引用。
HTML ->
<div class="content">
<div class="main">
Main Content
</div>
<div class="sidebar">
Sidebar
</div>
<div class="footer">
Footer
</div>
</div>
CSS ->
#content{
position:relative; /* required */
height:2000px;
}
.main{
margin-left:100px;
border:1px solid rgb(120,120,120);
height:1500px;
}
.sidebar{
position:absolute; /* required */
top:25px; /* required -- does NOT need to be this value, however. */
left:5px; /* required -- does NOT need to be this value, however.*/
border:1px solid rgb(8,8,8);
background:rgba(70,70,70,.9);
color:#ecebeb;
width:93px;
}
.footer{
border-top:1px solid #ff0000;
height:498px;
}
jQuery ->
$(window).scroll(function(){
var dist = $(window).scrollTop();
var sTop = $('.sidebar').position().top;
var mHeight = $('.main').height();
var userDist = 100;
if((sTop > (mHeight - userDist)) && (dist > (mHeight - userDist))){
//the sidebar is pinned now. it won't scroll further.
}else if(dist < (mHeight - userDist)){
$('.sidebar').animate({
top: dist + $('.sidebar').height()
}, 0);
}
});