如何在jQuery中识别元素是否接近浏览器窗口的顶部

时间:2014-06-10 10:01:18

标签: javascript jquery css scroll

我有3个div,如<div class="diva">diva</div><div class="divb">divb</div><div class="divb">diva</div>,颜色为红色,黄色和蓝色。所有都是一个低于其他级联。它们宽400 px。

当我们接近浏览器的顶部(滚动时)时,我想将div b和c的颜色更改为黑色,比如说它们距离顶部是40px还是以下。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

请尝试以下代码行:

jQuery(window).scroll(function(){
    if (jQuery(this).scrollTop() > 40 ) {
        $(".divb").css({
            "background":"black"
        })
        $(".divc").css({
            "background":"gray"
        })
}
});

40 是您从浏览器顶部开始的距离以及malakukan向下滚动并且距离超过 40 (40px)时滚动页面的值,然后jQuery将更改css中的数据。 Divb和。 DIVC。 希望能帮助

答案 1 :(得分:0)

使用

解决
$(window).scroll(function(){
  var xx = $(document).scrollTop();
  if(xx > 360){
    //change color
  }
})

答案 2 :(得分:0)

使用jquery scrollTop() - ref

jsfiddle

上查看

<强> jquery的:

$(window).scroll(function() {

    if($(window).scrollTop()>=828) {
        $("#divc").css({ "background":"black"} );
        $("#diva").css({ "background":"red"} );
        $("#divb").css({ "background":"green"} );
    }
    else if($(window).scrollTop()>=418) {
        $("#divb").css({ "background":"black"} );
        $("#diva").css({ "background":"red"} );
        $("#divc").css({ "background":"gray"} );
    }
    else if($(window).scrollTop()>8) {
        $("#diva").css({ "background":"black"} );
        $("#divb").css({ "background":"green"} );
        $("#divc").css({ "background":"gray"} );
    }
    else{
        $("#diva").css({ "background":"red"} );
    }
});

<强>的CSS:

body{
    padding:0px;
}
#diva,#divb,#divc{
    display:block;
    margin-bottom:10px;
    position:relative;
    width:400px;
    height:400px;
}
#diva{
    background:grey;
}
#divb{
    background:green;
}
#diva{
    background:red;
}

<强> HTML:

<div id="diva"> diva </div>
<div id="divb"> divb </div>
<div id="divc"> divc </div>

<br/><br/><br/><br/><br/><br/><br/>