繁体   English   中英

添加额外的top .offset()

[英]Add extra top .offset()

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

枫木

我认为它可以做startPosition吗? 我以为可以在CSS中进行更改,但这只是打破了div在一定高度不粘的功能。

我尝试在CSS中使div顶部的px'!important'重要。 这是打破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');
    }
});

我只需要在div顶部额外增加70像素,就可以完全看到它。

我也看过使用它。

.offset({ top: 70 });

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

事实证明,我可以将另一个类修改为子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语句。 我不知道这是否是最好的方法,但它正在起作用,我对此表示满意

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM