根据div更改滚动时的字体颜色

时间:2017-07-20 16:22:12

标签: javascript jquery html css

我目前正在编写一个固定在屏幕右上角的简单菜单按钮。

对于文本,它通常是黑色,但我希望能够在文本在页面上的某个Div内时将文本更改为白色,以便在深色背景图像上仍然可见。

我已经设置了两个.CSS类,并尝试让它们开启滚动但我无法理解。

任何人都知道如何实现这一结果?

HTML

  <div class="NavigationButton menu_white">
    MENU
  </div>

CSS

.NavigationButton {
 position: fixed;
 top: 5%;
 right: 5%;
 z-index: 99999;
 font-family: neuzeit-grotesk, sans-serif;
 font-weight: 700;
 color: inherit;
}

.menu_white {
 color: #fff;
}

.menu_black {
 color: #000;
}

(非我的网站)示例网站:http://flavinsky.com/home/amaio

没有快照滚动

由于

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery获取滚动位置,并根据深色背景元素的位置切换类。这是一个例子

$(document).ready(function(){
    $(window).scroll(function(){
    var light_pos = $('#white_div').offset().top;
    var light_height = $('#white_div').height();
    var menu_pos = $('.NavigationButton').offset().top;
    var scroll = $(window).scrollTop();

    if(menu_pos > light_pos && menu_pos < (light_pos + light_height)) {
        $('.NavigationButton').addClass('menu_black');
      $('.NavigationButton').removeClass('menu_white');
    }
    else {
        $('.NavigationButton').removeClass('menu_black');
      $('.NavigationButton').addClass('menu_white');
    }

  })
})

这是一个工作小提琴https://jsfiddle.net/atqkuwhs/

答案 1 :(得分:0)

一种可能的解决方案是从页面顶部获取div和菜单的偏移量,并在它们相交后应用您想要的更改。