javascript - 淡化导航并使其在向下滚动时固定,在向上滚动时淡化

标签 javascript jquery html css

我试图让我的导航淡出淡入的变化(ul li 颜色和背景颜色)。我希望导航淡出回到其原始状态,但我遇到了动画淡出的问题。

我尝试为类的移除设置动画,但这把一切都搞砸了!

fiddle :http://jsfiddle.net/vp7chr47/1/

HTML

<div id="nav">
    <ul>
        <li>link</li>
        <li>link</li>
        <li>link</li>
    </ul>
</div>

JS

$(window).scroll(function () {
    var scroll_top = $(this).scrollTop();
    if (scroll_top >= 1) {
        $("#nav").addClass("nav-float");
    } else {
        setTimeout(function(){
            $("#nav").removeClass("nav-float");
        }, 1000 ).fadeOut("slow");
    }
});

CSS

body {
    background: #000;
    padding: 0;
    margin: 0;
    color: #00ff00;
}
#nav {
    width: 100%;
    height: 80px;
    border: 1px solid #ff0000;
}
#nav ul li {
    display: inline;
}
.nav-float {
    position: fixed;
    background: #fff;
    transition: all 0.3s ease-in-out 0s;
    -moz-transition: all 0.3s ease-in-out 0s;
    -webkit-transition: all 0.3s ease-in-out 0s;
}
.nav-float ul li {
    color: #ff0000;
    transition: all 0.3s ease-in-out 0s;
    -moz-transition: all 0.3s ease-in-out 0s;
    -webkit-transition: all 0.3s ease-in-out 0s;
}

最佳答案

您可以将 css transition.nav-float 类移动到 #nav 类。然后你可以简单地添加或删除类:

$(window).scroll(function () {
    var scroll_top = $(this).scrollTop();
    if (scroll_top >= 1) {
        $("#nav").addClass("nav-float");
    } else {
        $("#nav").removeClass("nav-float");
    }
});

Working fiddle is here

关于javascript - 淡化导航并使其在向下滚动时固定,在向上滚动时淡化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25534511/

相关文章:

javascript - 如何在框架中的元素上使用 javascript

javascript - 将变量绑定(bind)到 Angular Js 中的已编译元素

php - 使用 Jquery 使用选择下拉列表更新表行

javascript - 从另一个 JS 文件访问对象时未捕获的 ReferenceError

javascript - Meteor根据条件语句加载JS文件

javascript - 在 GA 跟踪流程中应将用户 ID 放在哪里?

javascript - Number 作为默认的 jquery 插件选项

html - 在图像叠加 CSS 上填充

html - 当标签在输入标签之前时,图像上传设计不起作用

javascript - 我无法理解 promise