Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加额外的top.offset()_Javascript_Jquery_Sticky - Fatal编程技术网

Javascript 添加额外的top.offset()

Javascript 添加额外的top.offset(),javascript,jquery,sticky,Javascript,Jquery,Sticky,我想知道如何将额外的“top”.offset()添加到此div 地图棒 我认为这是一个开始的位置??我原以为我可以在CSS中更改它,但这只是破坏了div在某个高度取消粘滞的功能 我尝试在CSS中创建顶级px'!div上的重要信息。这就是打破if/else语句的原因,因为它弄乱了div的实际顶部,脚本没有意识到它看起来是什么样子 var navWrap = $('#navWrap'), nav = $('#mapstick'), startPosition = navWrap.of

我想知道如何将额外的“top”.offset()添加到此div

地图棒 我认为这是一个开始的位置??我原以为我可以在CSS中更改它,但这只是破坏了div在某个高度取消粘滞的功能

我尝试在CSS中创建顶级px'!div上的重要信息。这就是打破if/else语句的原因,因为它弄乱了div的实际顶部,脚本没有意识到它看起来是什么样子

var navWrap = $('#navWrap'),
    nav = $('#mapstick'),
    startPosition = navWrap.offset().top,
    stopPosition = $('#stopHere').offset().top - nav.outerHeight();

$(document).scroll(function () {
    //stick nav to top of page
    var y = $(this).scrollTop()

    if (y > startPosition) {
        nav.addClass('sticky');
        if (y > stopPosition) {
            nav.css('top', stopPosition - y);
        } else {
            nav.css('top', 0);
        }
    } else {
        nav.removeClass('sticky');
    }
});
我只需要一个额外的70像素的div顶部,以便它可以完全可见

我也研究过如何使用它

.offset({ top: 70 });

我想我用错了,因为这把事情搞砸了。

结果我可以把另一个类修改成一个child div,以达到我想要的效果。所以我刚刚在if语句中添加了一个额外的'addClass',它似乎完成了这个任务

这就是我现在的剧本

var navWrap = $('#navWrap'),
    nav = $('#mapstick'),
    maptop = $('#map')
    startPosition = navWrap.offset().top  ,
    stopPosition = $('#stopHere').offset().top   - nav.outerHeight();

$(document).scroll(function () {
    //stick nav to top of page
    var y = $(this).scrollTop()

    if (y > startPosition) {
        nav.addClass('sticky'),
        maptop.addClass('maptop');
        if (y > stopPosition) {
            nav.css('top', stopPosition - y);
        } else {
            nav.css('top', 0);
        }
    } else {
        nav.removeClass('sticky'),
        maptop.addClass('maptop');
    }
});
我已将“maptop”添加到正在工作的if语句中。我不知道这是否是最好的方法,但它是有效的,我很好,哈哈