javascript - jQuery-在特定点改变导航栏的颜色

标签 javascript jquery html css

除了我的“关于我们”页面之外,我目前在每个网页上都使用此功能。 基本上,我使用了变量:

<div class="spacer"></div>
<p id="startchange">

它链接到 JQuery 以启动颜色更改/用另一个图像替换图像。目前这两个属性都没有改变,但是在其他页面上它们工作得很好:因为 sticky nav bar 使用航路点变得更小。我在我的代码中很早就使用了这些变量(就在标题下面)。

似乎无论我把它们放在哪里,它们似乎都不会执行,我不确定为什么。

jQuery:

    <script>

    $(document).ready(function(){       
   var scroll_start = 0;
   var startchange = $('#startchange');
   var offset = startchange.offset();
   $(document).scroll(function() { 
      scroll_start = $(this).scrollTop();
      if(scroll_start > offset.top) {
          $('#navbar').css('background-color', '#f0f0f0');
          $("#navbar img").attr("src", "images/logo-grey-real.jpg");
       } else {
          $('#navbar').css('background-color', '#fff');
          $("#navbar img").attr("src", "images/logo.jpg");
       }
   });
});

    </script>

最佳答案

我做了一个JSFiddle :)

HTML :

<div class="navbar"></div>
<p id="test">test</p>

Jquery :

var offset = $('#test').offset().top;
var navbar = $('.navbar');

$(document).scroll(function() {
    position = $(this).scrollTop();
    if (position < offset)
        navbar.css('background-color', 'red');
    else
        navbar.css('background-color', 'blue');
});

关于javascript - jQuery-在特定点改变导航栏的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34469085/

相关文章:

html - 我应该将输入元素放在标签元素中吗?

javascript - 在带有缩回地址栏的移动浏览器中使用全高

javascript - 随机有效地放置 100 个圆而没有任何重叠的算法?

javascript - 在 Bootstrap 3 Accordion 中添加动态闭合面板

javascript - 输入框在 backspace/del 上不能正常工作

javascript - 增加嵌套(子)div 的高度以占据其父 div 的高度

javascript - 将客户端 JavaScript 中的数组或哈希传递到服务器端 ruby​​ 有哪些好方法?

javascript - 三个JS、WebGl、在全景图上方显示 Sprite

javascript - 如何屏蔽一个 div 并使其所有子元素不可编辑

javascript - 如何存储对刚刚插入的 div 的引用