首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画粘滞导航

动画粘滞导航
EN

Stack Overflow用户
提问于 2014-04-21 09:31:46
回答 1查看 380关注 0票数 0

我正在尝试制作动画粘性导航,在页面向下滚动到955px后,在页面顶部滑动,如果页面滚动到低于955px,则向上滑动。我设法通过在css中将top设置为0,并在jquery中将top设置为172px,将页边距设置为-172px来实现第一步的动画效果,但我不知道在页面向上滚动后如何反转。

html:

代码语言:javascript
复制
<header>
    <nav>
        <a href="#torte">Torte</a>
        <a href="#kolaci">Kolači</a>
        <a href="#napici">Napici</a>
        <a href="#slatka-peciva">Slatka Peciva</a>
        <a href="#jela">Jela</a>
        <a href="#slana-peciva">Slana Peciva</a>
        <a href="#oblogu">O blogu</a>
        <a href="#contact">Kontakt</a>
        <a href="#ostalo">Ostalo</a>
    </nav>
</header>

Css:

代码语言:javascript
复制
header{
    height: 125px;
    left: 0;
    position: fixed;
    top: 0;
    margin-top: -172px;
    width: 100%;
    z-index: 100;
}

jQuery:

代码语言:javascript
复制
/* sticky navigation, active class */
$(window).scroll(function() {
    var windscroll = $(window).scrollTop();
    if (windscroll >= 955) {
        $('header').animate({'top':172});
        $('section').each(function(i) {
            if ($(this).position().top <= windscroll + 50) {
                $('nav a.active').removeClass('active');
                $('nav a').eq(i).addClass('active');
            }
        });

    } else {
        /*
        code for the slide up animation goes here
        */
        $('nav a.active').removeClass('active');
        $('nav a:first').addClass('active');
    }

}).scroll();

如何在页面再次向上滚动后反转动画?

EN

回答 1

Stack Overflow用户

发布于 2014-04-21 10:55:35

我想通了。这很简单。刚在动画的动画前面添加了.stop(),对于滑动,我使用了相同的代码行,然后将顶部设置为0来反转它。

代码语言:javascript
复制
$(window).scroll(function() {
var windscroll = $(window).scrollTop();
if (windscroll >= 955) {
    $('header').stop().animate({'top':172});
    $('section').each(function(i) {
        if ($(this).position().top <= windscroll + 50) {
            $('nav a.active').removeClass('active');
            $('nav a').eq(i).addClass('active');
        }
    });

} else {
    $('header').stop().animate({'top':0});
    $('nav a.active').removeClass('active');
    $('nav a:first').addClass('active');
}

}).scroll();

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

https://stackoverflow.com/questions/23189539

复制
相关文章

相似问题

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