我找到了这个脚本:
$(function(){
var btn = $('.social');
var btnPosTop = btn.offset().top;
var win = $(window);
win.scroll(function(e){
var scrollTop = win.scrollTop();
if(scrollTop >= btnPosTop){
btn.css({position:'fixed',left:'82%'});
}else if(btn.css('position') === 'fixed'){
btn.css({position:'',left:''});
}
});
});
哪个效果很好。我将原始字段更改为“.social”,以便它可以与我的代码一起使用。
我不是在寻找“左:82%”的垃圾修复。 我想避开这个位置:固定;并简单地滚动它所在的div。
我的树是#container .contain .single-content .social
位置:固定是我的主要问题,但如果你知道,那么一旦它到达.single-content的最底部就停止.social将是一个主要的加分!!
希望我提供了足够的信息。
HTML:
<div id='container'>
<div class='contain'>
<div class='single-content'>
<div class='first'>
<div class='social'>
content here.. no p tags.. just facebook, twitter buttons etc.
</div>
</div>
</div>
</div>
</div><!-- container -->
编辑: 相关网站:thelackof.com
你可以看到社交图标由于我的左边有点偏移:82% 如果我删除左边:,那么新的位置:fixed会将我的div从包含的div跳出来,一直到下一个包含div的左边。
我希望它能保持原状,并在到达时向下滚动。
答案 0 :(得分:0)
编辑没有。 2:首先:
因此,它将获得一个不会打扰主要内容的值:
#container .contain .single-content .first .social {
float: left;
position: absolute;
width: 15%;
right: 0;
}
然后这个:
$(function(){
var btn = $('.social');
var btnPosTop = btn.offset().top;
var win = $(window);
win.scroll(function(e){
var scrollTop = win.scrollTop();
if(scrollTop >= btnPosTop){
btn.css({position:'fixed'});
}else if(btn.css('position') === 'fixed'){
btn.css({position:''});}
if (btnPosTop >= $('.single-content').offset().top-92){
btn.css({position:''});
}
});
});
我可能会错误地提出你的问题,但我认为这就是你要求的。我删除了左边的属性。
希望有所帮助:)
编辑:我已添加:
if (btnPosTop >= $('.single-content').offset().top){
btn.css({position:''});
}
所以它会滚动直到btnPosTop大于offset()。顶部.single-content
如果有效,请告诉我