Javascript-makedivfollow页面(可以工作,但它也会推侧边栏?)

Javascript-makedivfollow页面(可以工作,但它也会推侧边栏?),javascript,sidebar,floating,Javascript,Sidebar,Floating,/-----------------------------------------------------------------------------------/ 编辑:我不想使用固定CSS定位。它位于视口的底部 没有滚动,但是我希望它在到达顶部时跟随。 /-----------------------------------------------------------------------------------/ 我正在用一个巨大的侧边栏制作一个压缩页面。里面有大量的证词、事实

/-----------------------------------------------------------------------------------/ 编辑:我不想使用固定CSS定位。它位于视口的底部 没有滚动,但是我希望它在到达顶部时跟随。 /-----------------------------------------------------------------------------------/

我正在用一个巨大的侧边栏制作一个压缩页面。里面有大量的证词、事实、图片等等。但是,我在顶部附近有一个按钮,我想在用户滚动页面时跟随他们向下移动。应该不会太难吧

我有一个脚本-当它到达页面顶部时开始拖动.followme。然而,它也推倒了它下面的所有潜水舱。我能告诉它瞄准目标吗?跟随它,不影响它下面的div

<script type="text/javascript">
var documentHeight = 0;
var topPadding = 15;
$(function() {
    var offset = $(".followme").offset();
    documentHeight = $(document).height();
    $(window).scroll(function() {
        var sideBarHeight = $(".followme").height();
        if ($(window).scrollTop() > offset.top) {
            var newPosition = ($(window).scrollTop() - offset.top) + topPadding;
            var maxPosition = documentHeight - (sideBarHeight + 100);
            if (newPosition > maxPosition) {
                newPosition = maxPosition;
            }
            $(".followme").stop().animate({
                marginTop: newPosition
            });
        } else {
            $(".followme").stop().animate({
                marginTop: 0
            });
        };
    });
});

var-documentHeight=0;
var=15;
$(函数(){
var offset=$(“.followme”).offset();
documentHeight=$(document.height();
$(窗口)。滚动(函数(){
var sideBarHeight=$(“.followme”).height();
if($(窗口).scrollTop()>offset.top){
var newPosition=($(window.scrollTop()-offset.top)+topPadding;
var maxPosition=documentHeight-(侧边栏高度+100);
如果(新位置>最大位置){
newPosition=maxPosition;
}
$(“.followme”).stop().animate({
马金托普:新职位
});
}否则{
$(“.followme”).stop().animate({
玛金托普:0
});
};
});
});

您有一个更简单的选项,它根本不需要任何JS\jQuery

.followme {
    position: fixed;
    height: 30px;
    width: 30px;
    background-color: #FF0000;
    top: 48%;
    left: 0;
}
这将永远不会影响页面的任何其他元素,并且根本不需要任何脚本。现在,如果您需要元素(followme)在某个滚动百分比或您可能想到的任何其他交互方式上显示,那么您需要更具创造性地思考。但是如果问题只是让元素跟随你的滚动,那么上面的方法应该是一个好的、干净的解决方案

示例代码:


增加的好处-更容易使用CPU<代码>位置:固定几乎不会导致开销!我知道如何使用CSS进行固定定位,但并不是那么简单。我希望它开始滚动与网站时,它击中了页面的顶部。它在折叠上方、页面底部的东西流中的位置。我不想把它修好。我希望在用户继续滚动并阅读更多内容后,将其固定在顶部。@Alex以上内容将帮助您!您所要做的不是通过jQuery更改元素的marginTop,而是设置左上方的属性!这是非常突出的,不会影响页面上的其他元素。我接受答案作为CSS修复,但这并没有解决我的问题,因为它总是固定在那个位置,而不是当你向下滚动,它击中窗口顶部时。