javascript - 一页网站更改菜单颜色每个部分

标签 javascript jquery html css

我目前正在构建一个带有固定导航菜单(蓝色背景)的单页网站。这个单页网站有 4 个部分,2 个蓝色背景和 2 个白色背景。

我对这个菜单的想法是,当我在蓝色部分上滚动(不是鼠标悬停)时,菜单背景变为白色。当我滚动到白色部分时,背景变回蓝色。 可以找到一个例子here .

(不是我的网站,但在滚动时查看菜单颜色的变化)

我的 HTML 代码如下所示:

<div class="subMenu" >
    <div class="inner">
        <a href="#sTop" class="subNavBtn">Home</a>
        <a href="#s1" class="subNavBtn">Over mij</a> 
        <a href="#s2" class="subNavBtn">Kennis</a>
        <a href="#s3" class="subNavBtn">Projecten</a>
        <a href="#s4" class="subNavBtn">Contact</a>
    </div>
</div>

<div class="section s1">
    <div class="inner">
        <h1>Section 1</h1>
    </div>
</div>

<div class="section s2">
    <div class="inner">
        <h1>Section 2</h1>
    </div>
</div>
<div class="section s3">
    <div class="inner">
        <h1>Section 3</h1>
    </div>
</div>

<div class="section s4">
    <div class="inner">
        <h1>Section 4</h1>
    </div>
</div>

有没有简单的方法来做到这一点? 提前致谢。

最佳答案

我已经为我的问题找到/创建了一个临时修复程序。

$(window).scroll(function(e) {
var s1 = $('.s1'),
    s2 = $('.s2'),
    s3 = $('.s3'),
    s4 = $('.s4'),
    menu = $('.menu'),
    diff = s1[0].offsetTop - window.pageYOffset;
    diff2 = s2[0].offsetTop - window.pageYOffset; 
    diff3 = s3[0].offsetTop - window.pageYOffset; 
    diff4 = s4[0].offsetTop - window.pageYOffset; 

    if(diff < 100) {
        $(".menu").addClass("white");
        $(".menu").removeClass("blue");
    }
    if(diff2 < 100) {
        $(".menu").addClass("blue");
        $(".menu").removeClass("white");
    }
    if(diff3 < 100) {
        $(".menu").addClass("white");
        $(".menu").removeClass("blue");
    }
    if(diff4 < 100) {
        $(".menu").addClass("blue");
        $(".menu").removeClass("white");
    }
    if(diff > 100) {
        $(".menu").removeClass("white");
        $(".menu").removeClass("blue");
    }

});

JSFIDDLE DEMO

关于javascript - 一页网站更改菜单颜色每个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25824683/

相关文章:

java - 将 JavaScript 连接到 Java

javascript - CKEditor插件,如何在单击创建的内容时重新打开对话框

javascript - 将左边框应用于 jQuery bxSlider 插件自动生成的第一个 li 元素

javascript - 加载 fontawesome 的回退计划

javascript - 在设备从纵向/横向旋转时使用 javascript 或 CSS 进行重定向

javascript - 是否可能或当前存在 html 表单处理程序,如果是,我将如何使用它?

jquery - 打开时颜色框太宽

html - 将文本包装在标签内不起作用

c# - Page.FindControl 为 DIV 返回 null

javascript - navigator.network.connection.type 返回 null 而不是 Connection.NONE