小编典典

如何滚动到div内的元素?

all

我有一个滚动div,当我点击它时我想要一个事件,它会强制它div滚动以查看里面的元素。我这样写它的JavasSript:

document.getElementById(chr).scrollIntoView(true);

但这会在滚动div自身的同时滚动所有页面。如何解决?

我想这样说: MyContainerDiv.getElementById(chr).scrollIntoView(true);


阅读 79

收藏
2022-05-19

共1个答案

小编典典

您需要获取要滚动到视图中的元素相对于其父级(滚动 div 容器)的顶部偏移量:

var myElement = document.getElementById('element_within_div');
var topPos = myElement.offsetTop;

变量 topPos 现在设置为滚动 div 的顶部和您希望可见的元素之间的距离(以像素为单位)。

现在我们使用以下命令告诉 div 滚动到该位置scrollTop

document.getElementById('scrolling_div').scrollTop = topPos;

如果你使用原型 JS 框架,你会做同样的事情:

var posArray = $('element_within_div').positionedOffset();
$('scrolling_div').scrollTop = posArray[1];

同样,这将滚动 div 以使您希望看到的元素恰好位于顶部(或者如果这不可能,则尽可能向下滚动以使其可见)。

2022-05-19