javascript - Jquery在 'X'滚动的视口(viewport)高度量后添加CSS类

标签 javascript jquery css scroll height

所以我有这个 jQuery 函数,可以在滚动 600px 的视口(viewport)高度后向元素添加/删除 CSS 类。

$(window).scroll(function() {    
    var scroll = $(window).scrollTop();    
    if (scroll >= 600) {
        $(".cta_box").addClass('fadeout');
    } else {
        $(".cta_box").removeClass('fadeout');
    }
});

我想调整它,这样它就不再基于像素值工作,而是根据 View 高度 CSS 测量“VH”工作,但在这种情况下,等效的结果才是重要的。

最佳答案

可以通过使用$(window).height()获取window高度来完成。

例如,假设您必须再滚动一半屏幕(高度为 150vh),并且必须检测何时滚动了 40%:

$(window).scroll(function() {    
    var scroll = $(window).scrollTop();    
    if (scroll >= 0.4 * $(window).height()) {
        $(".cta_box").addClass('fadeout');
    } else {
        $(".cta_box").removeClass('fadeout');
    }
});
body{
  margin: 0;
  height: 150vh;
}
.cta_box {
  height: 100%;
  background: green;
}
.cta_box.fadeout {
  background: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="cta_box"></div>

关于javascript - Jquery在 'X'滚动的视口(viewport)高度量后添加CSS类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193912/

相关文章:

javascript - 处理 catch block 中的异常

javascript - 正则表达式替换所有上标数字

javascript - 如何在 jquery 中切换除选定元素之外的所有元素

javascript - 如何使大文本字段的文本框变宽

javascript - 单击不同 ID 时 Bootstrap 日期选择器自动折叠

javascript - 尝试将 $set 与 stringify 一起使用,但它不起作用

javascript - 父子复选框

javascript - jQuery 下拉菜单无法正常工作

css - CSS specificity中的points是怎么计算的

javascript - 如何在 fullCalendar 中更改标题的字体颜色