如何在没有位置的情况下滚动div页面:已修复?

时间:2015-08-05 23:43:15

标签: javascript jquery html css scroll

我找到了这个脚本:

$(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的左边。

我希望它能保持原状,并在到达时向下滚动。

1 个答案:

答案 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

如果有效,请告诉我