查找第一个可滚动的父级

Jeanluca Scaleri:

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

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

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

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

主体可以滚动或 .outer

有什么建议 ?

斯蒂法诺·纳多(Stefano Nardo):

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以第一个值不是数字滚动窗口

在水平滚动视图中自动转到最右边(最后一个子级),然后返回最左边(第一个子级)

如何使用jQuery选择第一个父级DIV?

jQuery查找具有特定类前缀的第一个父元素

查找第一个父级并通过jQuery添加类

如何将父级的第一个子级中的属性移动到XSLT中的父级?

:除非父级为<div>,否则第一个子级不起作用

二叉树父级与命令第一个输出相同

如何确定哪个父级是Git中合并提交的第一个父级

如何停止Android ScrollViewer滚动到其第一个按钮子级

如何选择在选定列表项之前的每个第一个父级列表项

在层次结构中查找第一个元素,而不是在子级中

tablethead和第一个tbody列在可滚动div中保持固定

查找第一个唯一编号

合并后表示错误的第一个父级的GitHub网络图

factory_boy工厂的多重继承-似乎仅继承第一个父级

Zurb基金会下拉列表到第一个父级的位置

jQuery查找父元素以查找具有特定数据的第一个元素

基于浏览器渲染的第一个孩子的父级下的第一个孩子设置margin的概念

父子选择,无法访问第一个父级(jquery)

计算 XSLT 中每个父级的不同第一个子值元素

仅管理包含 * ngFor 的第一个 div 父级的不透明度

底部粘性菜单滚动第一个屏幕

使用 pathlib,父级的父级只返回第一个父级本身(parent.parent == parent)

通过单击图标隐藏第一个父级

强制一个 div 更改同一父级内其他 div 的大小,因此可以看到第一个

查找具有特定一级后代的第一个父元素

CSS:仅针对父级中的第一个子元素 - 第一个类型不起作用

如果不是直接子级,如何定位容器中父级的第一个子级