当前位置: 首页 > 面试题库 >

查找第一个可滚动的父级

仲孙英才
2023-03-14
问题内容

在这种情况下,需要将元素滚动到视口中。问题是我不知道哪个元素是可滚动的。例如,在“纵向”中,身体是可滚动的,在“横向”中,身体是其他的元素(还有更多情况会更改可滚动的元素)

现在的问题是,给定需要滚动到视口中的元素,找到其第一个可滚动父级的最佳方法是什么?

我在这里设置了一个演示。使用按钮,您可以在两种不同情况之间切换

<div class="outer">
    <div class="inner">
        <div class="content"> 
            ...
            <span>Scroll me into view</span>
        </div>
    </div>
</div>

主体可以滚动或 .outer

有什么建议么 ?


问题答案:

只需检查滚动条是否可见,如果看不到父级。

function getScrollParent(node) {
  if (node == null) {
    return null;
  }

  if (node.scrollHeight > node.clientHeight) {
    return node;
  } else {
    return getScrollParent(node.parentNode);
  }
}


 类似资料:
  • 问题内容: 我试图获取许多列中的第一个非空值。我知道我可以使用每列的子查询来完成此操作。以性能的名义(在这种情况下确实很重要),我想一次完成。 以以下示例数据为例: 我的梦想查询将在每个数据列中找到第一个非null值,并按排序。 例如,选择第一三列的神奇骨料时,排序由所述下降。 或升序排序时: 有人知道解决方案吗? 问题答案: 可以与一起使用。是必需的,因为SQL Server首先对null进行排

  • 允许查找两个共同祖先的提交位置。是否有一种方法可以找到再次合并两个分支的commit?

  • 你好,伙计们,我想使我的列表视图这样,一个项目滚动一次和平滑。这里是我尝试到目前为止,但没有运气:(请帮助和感谢提前 自定义ListView类 }

  • 我刚刚开始玩Java 8 lambda,我正在尝试实现一些我在函数式语言中习惯的东西。 例如,大多数函数语言都有某种对序列进行操作的find函数,或返回第一个元素的列表,该元素的谓词为。我能看到的在《Java八号》中实现这一点的唯一方法是: 然而,这似乎没有效率,因为过滤器将扫描整个列表,至少在我的理解(这可能是错误的)。有更好的办法吗?

  • 我有一个查询来确定一个值是否已经存在于数据库中。在将资源插入数据库之前,我用它来验证资源。看起来是这样的: 在数据访问上,实现如下: 它确实有效并完成工作,但是我认为query.getResultList(.isEmpty()不是我需要的正确语法,而且我希望让它更快,并在找到值后返回,而不是循环遍历数据库上的每一行。任何建议将不胜感激。

  • 我想实现一个表单与一个图像页脚,放置在视图的底部,和一个可滚动的容器,沿Y坐标。 我尝试使用边框布局:在南方位置,我把图像的页脚;在北边的位置,我放了一个可滚动的boxlayout。