我目前正在编写一个固定在屏幕右上角的简单菜单按钮。
对于文本,它通常是黑色,但我希望能够在文本在页面上的某个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
没有快照滚动
由于
答案 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和菜单的偏移量,并在它们相交后应用您想要的更改。