首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相对于固定的位置-如何向下滑动?

问相对于固定的位置-如何向下滑动?
EN

Stack Overflow用户
提问于 2016-08-18 12:37:32
回答 1查看 1.2K关注 0票数 2

我的菜单都设置好了,可以开始了,而且我现在的JS没有让页面跳到所有地方,这是很好的。我遇到的问题是,让我的“固定”导航向上/向下滑动,而不是凭空出现。

目前,我的jQuery正在激活一个屏幕下大约300px的类,这会将菜单位置从相对更改为固定。

请注意:我最初设法使用静态定位,但在我的网站上使用z-index和其他一些元素时遇到了困难,所以我希望定位保持相对(而不是静态)。我也不想用javascript以任何方式复制菜单(我见过一些这样做的例子)。

当菜单位置变为固定时,如何使用jquery或css来实现向下滑动和向上滑动的效果?

下面是我的代码,非常感谢。

HTML:

代码语言:javascript
复制
<div class="nt-main-navigation-sticky">
    <!-- my nav, logo, etc, is in here. -->
</div>

CSS:

代码语言:javascript
复制
.nt-main-navigation-sticky {
    position: relative;
}


.activeScroll .nt-main-navigation-sticky {
    position: fixed;
    top: 0;
    left: 0;
}

JQUERY:

代码语言:javascript
复制
// get my header height
var getHeaderHeight = $('.nt-main-navigation-sticky').outerHeight();


// add/remove body class
$(window).scroll(function() {

    if($(window).scrollTop() > getHeaderHeight + 200) {

        $('body').addClass('activeScroll').css('padding-top', getHeaderHeight);

    } else {

        $('body').removeClass('activeScroll').css('padding-top', 0);

    }

});
EN

回答 1

Stack Overflow用户

发布于 2016-08-18 12:49:09

将过渡添加到您的css:

代码语言:javascript
复制
.nt-main-navigation-sticky {
    position: relative;
}


.activeScroll .nt-main-navigation-sticky {
    position: fixed;
    top: -50px; // or whatever the height of the navbar
    left: 0;
    transition: top 600ms;
}

和js:

代码语言:javascript
复制
if($(window).scrollTop() > getHeaderHeight + 200) {

    $('body').addClass('activeScroll').css('padding-top', getHeaderHeight);
    $('.nt-main-navigation-sticky').css('top', '0px'); // will trigger transition

} else {
    $('.nt-main-navigation-sticky').css('top', '-50px'); // will trigger transition
    $('body').removeClass('activeScroll').css('padding-top', 0);

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39010104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档