javascript - 突出显示滚动窗口中当前显示的所有 div

标签 javascript jquery html

我有一些具有相同类别但不同高度的 div。我想在当前窗口框架中当前显示的所有 div 上添加突出显示类(窗口框架是可滚动的)。

我尝试了这段代码

$('.l3_box').each(function () {
    var bottom_of_object = $(this).offset().top + $(this).outerHeight();
    var bottom_of_window = $(window).scrollTop() + $(window).height();

    /* If the object is completely visible in the window, fade it it */
    if (bottom_of_window > bottom_of_object) {
        $('#tab_out01 .l3_box').removeClass("testt");
        $(this).addClass("testt");

    }
});

当我的 div 大小等于或小于窗口大小时,这可以正常工作。 但是当我的 div 大小远高于窗口的大小时,它不起作用,直到我到达 div 的末尾。

最佳答案

为什么不同时检查顶部和底部?

$('#tab_out01 .l3_box').removeClass("testt");
$('.l3_box').each(function () {
    var bottom_of_object = $(this).offset().top + $(this).outerHeight();
    var top_of_object = $(this).offset().top;
    var center_of_window = $(window).scrollTop() + $(window).height() / 2;

    /* If the object is completely visible in the window, fade it it */
    if (bottom_of_object > center_of_window && center_of_window > top_of_object) {
        $(this).addClass("testt");
        return false; // break
    }
});

关于javascript - 突出显示滚动窗口中当前显示的所有 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445542/

相关文章:

javascript - 在鼠标悬停时选择第二个堆栈时无法选择整个堆栈

javascript - 在 D3 js 中沿着给定方向移动一条线?

html - 具有自定义宽度的 4 列布局 bootstrap 3 中的第 4 列

javascript - 如何从网页中提取 javaScript 代码?

javascript - Chart.js - (中间值).Doughnut 不是一个函数

javascript - This.props.dispatch 不是一个函数 - React-Redux

javascript - 通过 body 标签的大量自定义 JS 事件

javascript - 通过 HTML onkeypress 限制某些字符的输入

javascript - easyzoom jquery 插件出现问题

html - SVG 中 TEXT 的显示不正确