微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 页面滚动时更改标题背景颜色

我一直在寻找一个解决方案,但我不能让它工作.

用户开始滚动页面时,我希望我的页眉从透明背景更改为白色背景.

HTML代码是:

<div class="header">
    <div class="topbar"></div>
    <div class="sitelogo"></div>
    <nav id="navigation">
        <ul>
            <li id="twitter"><a href="http://www.twitter.com/iamdanmorris"><em>Twitter</em></a></li>
            <li><a href="#contact">Contact</a></li>
            <li><a href="#blog">Blog</a></li>
            <li><a href="#">Portfolio</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Home</a></li>
        </ul>
    </nav>
    <div style="clear:both;"></div>
</div>

CSS代码是:

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0;
    z-index: 10000;
    -webkit-Box-shadow: 0 1px 5px rgba(0,0.25);
    -moz-Box-shadow: 0 1px 5px rgba(0,0.25);
    Box-shadow: 0 1px 5px rgba(0,0.25);
    transition: all 0.2s ease-in-out;
    height: auto;
    background-color:transparent;   
}

解决方法

$(window).on("scroll",function() {
    if($(window).scrollTop() > 50) {
        $(".header").addClass("active");
    } else {
        //remove the background property so it comes transparent again (defined in your css)
       $(".header").removeClass("active");
    }
});

小提琴:http://jsfiddle.net/634d6vgq/2/

如果用户从顶部滚动了超过50个像素,这将向元素添加背景颜色:#fff

这将添加一个“活动”类,以便您可以在css中设置它(更容易维护)

编辑:

$(function() {
    $(window).on("scroll",function() {
        if($(window).scrollTop() > 50) {
            $(".header").addClass("active");
        } else {
            //remove the background property so it comes transparent again (defined in your css)
           $(".header").removeClass("active");
        }
    });
});

而你的css:

.active { background-color: #fff}

确保您还添加此css规则,或者背景颜色不会更改

原文地址:https://www.jb51.cc/jquery/177631.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐