jquery - 滚动到网站特定部分时如何更改菜单图标?

标签 jquery html css menu scroll

我有一个使用固定菜单图标的单页网站。网站的有些部分是深色的,有些是浅色的。因此,我想根据用户滚动到网站的哪个部分将菜单图标更改为黑色或白色版本。

例如,我的目标网页有白色背景,所使用的菜单图标是黑色版本。登陆页面下方是我的“关于”部分,其背景为黑色。当用户滚动到此部分时,菜单图标应更改为白色版本。

不确定我是否走在正确的轨道上,但我已经为网站的每个部分放置了 id 标签,并且菜单图标引用了实际菜单图标图像所在的 css。我相信 jquery 是让它真正改变图像的答案,但我不知道如何编码。

谢谢。

HTML

<!-- NAVIGATION MENU ICON -->
		
<div class="sb-navbar sb-slide">
    <!-- Right Slidebar control -->
    <div class="sb-toggle-right">
        <div class="icon_black"></div>
    </div>
</div>

CSS

  

.icon_black {
		width:72px;
		height:72px;
		background-image: url(../img/icon_black.png);
}
.icon_white {
		background-image: url(../img/icon_white.png);
}

最佳答案

更新:(基于评论部分中OP的进一步要求)

试试这个:

$(document).on('scroll',function(){
    if($(document).scrollTop()>=$('#about').offset().top && $(document).scrollTop()<$('#work').offset().top){ //assuming the about section has an id called about (#about)
        $('.icon_black').removeClass('icon_black').addClass('icon_white');
    }
    else{
        $('.icon_white').removeClass('icon_white').addClass('icon_black');
    }
});

关于jquery - 滚动到网站特定部分时如何更改菜单图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967196/

相关文章:

javascript - 将 HTML、CSS 和 JS 组合成一个 HTML 文件(使用 Google Charts API 创建钟形曲线)

javascript - jQuery 插件中的 If 语句

javascript - 页面加载排序上的 jQuery 不会使用前导货币符号排序

html - 使用CSS控制图片下方的文字

html - CSS - 在 safari 中过渡不流畅

html - 为外部链接实现标签

javascript - 已更改类的背景颜色属性不起作用

jquery - 删除记录/数据后如何重新加载数据表?

javascript - 如何防止表单上出现垃圾邮件

css - 如何将动画 SVG 定位在 Foundation 6 元素后面?