我已经对此进行了大量研究,我似乎无法弄清楚为什么这对我不起作用。
我有两个div元素。其中一个div position: fixed
始终保持在窗口中。
一旦div击中页脚,它应该删除固定的滚动并粘贴到页脚的顶部。我尝试使用this example中的代码,但div只是在到达页脚时快速回到页面顶部。
这是一个例子的小提琴:
$(document).scroll(function (){
if($('.userInfo').offset().top + $('.userInfo').height() >= $('footer').offset().top - 10){
$('.userInfo').css('position', 'absolute');
}
if($(document).scrollTop() + window.innerHeight < $('footer').offset().top){
$('.userInfo').css('position', 'fixed');
}
});
&#13;
.profileMain{
display: flex;
}
.userInfoContainer{
height: 100%;
width: 50%;
display: inline-block;
}
.userInfo{
background: red;
width: 50%;
position: fixed;
}
.userContent{
background: blue;
width: 50%;
margin-bottom: 10em;
}
footer{
background: gray;
width: 100%;
height: 30em;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "profileMain">
<div class = "userInfoContainer">
<div class = "userInfo">f</div>
</div>
<div class = "userContent">f</div>
</div>
<footer></footer>
&#13;
有人可以向我解释我在这里做错了吗?
答案 0 :(得分:1)
执行与您提供的示例相反的操作(将div粘贴到顶部而不是底部),从第二个window.innerHeight
中删除if
并将滚动+元素的高度与{进行比较页脚的{1}},并使用offset
和top
位置将div放置在您想要的位置,
这应该可以解决问题:
bottom