javascript - 在顶部的元素框上滚动设置背景颜色

标签 javascript jquery html css

我认为代码显示了我正在尝试做的事情。

html:

<div id="one" class="box"></div>
<div id="two" class="box"></div>
<div id="thr" class="box"></div>
<div id="fou" class="box"></div>
<div id="fiv" class="box"></div>
<div id="six" class="box"></div>

脚本:

$(document).ready(function(){
    $(window).scroll(function(){
        $('.box').each(functions(e){
            if($(this).offset().top <= 0) {
                $(this).css('background-color','green');
            }
        });
    });
});

CSS:

div {
    position:relative;
    width:100%;
    height:300px;
    background-color:orange;
    margin:10px;
}

fiddle :http://jsfiddle.net/VR4ca/

因此,当滚动顶部的框时,背景颜色应变为绿色,直到下一个框到达窗口顶部

请帮忙

它甚至不适用于第一个盒子 http://jsfiddle.net/VR4ca/2/

最佳答案

$(window).scroll(function(){
    var pixelScrolled = $(window).scrollTop();
    $( ".box" ).each(function( index ) {
    var currentHeight = $(this).height();
        if (pixelScrolled >= index * currentHeight)
            $(this).addClass('active');
        else
            $(this).removeClass('active');
    });
});

您可以使用 .outerHeight() 或 .outerHeight(true) 代替 .height() 来包含边框、填充和边距的大小。

参见 demo :

关于javascript - 在顶部的元素框上滚动设置背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21305322/

相关文章:

php - 如何使用 php rest 范围在 outlook 日历上编写事件?

jquery - 如何防止随机 jquery 切换?

php - MYSQL 从带有分号的 html 文本区域插入字符串...建议?

javascript - 如何使用 JavaScript 以编程方式设置选择框元素的值?

javascript - 如何将 JS 嵌套的 some() 逻辑转换为 Java

javascript - 将 JS 转换为 Mithril(使用 Chartkick)

php - jQuery 获取特定选项标签选择的值

javascript - 我应该如何将多个变量传递给 jquery ajax 中的 url?

javascript - 使用 Node.JS 作为 REST 服务器和 Web 服务器

javascript - 在我的图像 slider 上添加过渡效果