首页 > 解决方案 > 如何查询溢出隐藏区域中的元素:滚动

问题描述

是否可以查询位于具有 的父元素的“隐藏区域”中的所有对象overflow:scroll

有一个父<div>容器style="overflow:scroll;height:200px"。此容器包含一个表。查看示例代码:

<div id="scrollContainer" style="overflow:hidden;height:200px">
    <table>
        <tr>
            <td>...</td>
        <tr>
        <tr>
            <td>...</td>
        <tr>
        ...
        ...
    </table>
</div>

我怎样才能得到所有看不见的列表<tr>

标签: javascriptcssoverflow

解决方案


第一个问题:

是的,它就是。JS 不太关心元素是否可见,它关心元素是否在 DOM 中。

因此,无论它们当前是否在屏幕上可见,document.getElementsByTagName('tr');都将返回所有s。 <tr>

第二个问题(?):

如果要特别选择在这个特定时刻在屏幕上可见(或不可见)的元素,您可以.getBoundingClientRect();按照此处所述使用。

或者,如果您确实非常关心这些元素的可见性并经常检查它,那么制作类似于轮播或其他“受控”元素的东西可能是一个更好的主意。

通过这种方式,您将能够跟踪其状态并准确了解每个元素的可见性。


推荐阅读