我有一个位置为固定、底部为0px的元素。 当我向下滚动页面时,这个元素应该跟随我,直到它接近页脚,比如说 100px 高度,我试图让元素停留在底部:0px 直到它到达页脚元素,在那一刻它应该始终让页脚元素位于其下方。
这是我的CSS:
#backToTop{
width:80px;
height:50px;
background:#333;
color:#FFF;
text-align:center;
border-radius:10px 10px 0 0;
padding-top:10px;
position:fixed;
bottom:0;
left:50%;
margin-left:550px;
}
我研究了 Jquery 的 $(document).height()
和 $(window).scrollTop()
来尝试提出某种条件会检测元素的位置何时接近页脚,但没有成功(我的页脚高度是120):
$(window).scroll(function(){
if($(document).height()-($(window).scrollTop()+$(window).height()) <= 120){
$('#backToTop').css({'bottom':$(document).height()-($(window).scrollTop()+$(window).height())});
}else{
$('#backToTop').css('bottom',0);
}
});
我不太确定这些值到底指向哪里,有什么提示吗?谢谢。
最佳答案
尝试为 #backToTop 元素创建两个类,一个用于固定位置,另一个用于相对位置。当页脚到达视口(viewport)时,#backToTop 元素将其类更改为“相对”。
HTML:
<div id="container">
<div id="backToTop" class="fixed_pos">Top</div>
<footer>footer</footer>
</div>
CSS:
#container {
width: 100%;
height: 1000px;
float: left;
}
#backToTop {
width:80px;
height:50px;
background:#333;
color:#FFF;
text-align:center;
border-radius:10px 10px 0 0;
padding-top:10px;
left: 50%;
margin-left: -40px;
}
.fixed_pos {
position:fixed;
bottom:0;
}
.relative_pos {
position: relative;
top: 100%;
}
footer {
width: 100%;
height: 200px;
float: left;
position: relative;
top: 100%;
background: #333;
color: #fff;
text-align: center;
}
看这里:
关于jquery - 如何使固定元素与文档底部保持特定距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16129543/