首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery根据滚动位置更改元素的css

jQuery根据滚动位置更改元素的css
EN

Stack Overflow用户
提问于 2017-12-12 17:23:22
回答 1查看 2.5K关注 0票数 1

我有一个有固定菜单按钮的一页网站,该网站有多个部分:

代码语言:javascript
复制
<div class="fullscreen sec-1"></div>
<div class="fullscreen sec-2"></div>
<div class="fullscreen sec-3"></div>

默认情况下,按钮的文本是白色的,因为第一个div的背景颜色是黑色。第二和第三种颜色是白色的,所以我希望按钮文本的颜色在滚动到第二个div顶部时变为黑色。我已经设法实现了如果其他,但高度是固定的,所以当它在移动设备上,结果是不同的,因为高度的div都是100%全屏。我把我的代码改为:

代码语言:javascript
复制
$(document).ready(function() {
        var button = $(".sec-1");
        var offset = button.offset();
        $(function () {
            $(window).scroll(function () {
                if ($(window).scrollTop() >= offset) {
                    $(".menu-button").css("color","black");
                } else {
                    $(".menu-button").css("color","white");

                }
            });
        });
});

目前我运气不佳,我很难找到一个例子供参考,所以如果有人能帮助我或指出正确的方向,我将非常感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-12 18:30:46

.offset()

.offset()返回一个包含顶部和左侧属性的对象。

您应该检查.sec-2而不是.sec-1

试着做些像

代码语言:javascript
复制
$(document).ready(function() {
        var button = $(".sec-2"); //get offset of second div
        var offset = button.offset().top; //check for top property
        $(function () {
            $(window).scroll(function () {
                if ($(window).scrollTop() >= offset) {
                    $(".menu-button").css("color","black");
                } else {
                    $(".menu-button").css("color","white");

                }
            });
        });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47778221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档