javascript - 当div滚动到某个点以上时改变文本的颜色

标签 javascript jquery

我希望当粉红色的 div 完全滚动到浏览器窗口底部边缘上方时,文本会改变颜色。当粉色 div 再次部分滚动到浏览器窗口底部边缘下方时,文本应再次变为白色。

$(document).ready(function(){
  $(window).on('scroll' , function(){
    var WindowScrollTop = $(this).scrollTop(),
        Div_one_top = $('#one').offset().top,
        Div_one_height = $('#one').outerHeight(true),
        Window_height = $(this).outerHeight(true);
    if(WindowScrollTop >= (Div_one_top +  Div_one_height) - WindowScrollTop){
       $('#text1').css('color' , 'black');
    }else{
       $('#text1').css('color' , 'white');
    }
  }).scroll();
});
#one {
    height: 120vw;
    width: 100%;
    top: 0px;
    background-color: pink;
}

#text1 {
    width: 100%;
    font-size: 9em;
    margin-top: 100vw;
    position: absolute;
	  color:white;
}

#two {
    height: 50vw;
    width: 100%;
    top: 0px;
    background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="one">
    <div id="text1">
        this is my text
    </div>
</div>
<div id="two">

</div>

最佳答案

需要比较Window_height和WindowScrollTop的总和:

$(document).ready(function(){
  $(window).on('scroll' , function(){
    var WindowScrollTop = $(this).scrollTop(),
        Div_one_top = $('#one').offset().top,
        Div_one_height = $('#one').outerHeight(true),
        Window_height = $(this).outerHeight(true);
    if(WindowScrollTop+Window_height >= (Div_one_top +  Div_one_height) ){
       $('#text1').css('color' , 'black');
    }else{
       $('#text1').css('color' , 'white');
    }
  }).scroll();
});
#one {
    height: 120vw;
    width: 100%;
    top: 0px;
    background-color: pink;
}

#text1 {
    width: 100%;
    font-size: 9em;
    margin-top: 100vw;
    position: absolute;
	  color:white;
}

#two {
    height: 50vw;
    width: 100%;
    top: 0px;
    background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="one">
    <div id="text1">
        this is my text
    </div>
</div>
<div id="two">

</div>

关于javascript - 当div滚动到某个点以上时改变文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44256564/

相关文章:

jquery - 退出 PhoneGap 中的移动应用程序?

javascript - 使用 Coldfusion 将特定 url 插入到 javascript 函数

javascript - 禁用提交按钮,直到隐藏字段有内容

javascript - 滚动时 JQuery 动画滞后

javascript - JS : Convert a specific values from an object into an array?

用户闲置一段时间后 Javascript 被禁用

javascript - 在 JavaScript 中添加天数会返回疯狂的值

javascript - 跨浏览器问题 jquery 下拉菜单

javascript - 如何使用 vba 从 Datastore.prime 中抓取数据

javascript - 每当用户使用谷歌地图 API 将图钉拖动到任何地方时,如何获取用户的新纬度、朗度