在JavaScript中以像素以外的单位滚动元素?

在JavaScript中以像素以外的单位滚动元素?,javascript,html,css,scroll,Javascript,Html,Css,Scroll,我有一个这样的: #myDiv { height: 5em; overflow: hidden; } 我想创建一个函数,将此向下滚动1em,确切地说是1em。我目前正在这样做: const myDiv = document.getElementById("myDiv"); const myDivHeight = myDiv.offsetHeight; myDiv.scrollTo(0, myDivHeight / 5); // 1em?? but not really... 然而,由

我有一个这样的

#myDiv {
  height: 5em;
  overflow: hidden;
}
我想创建一个函数,将此
向下滚动
1em
,确切地说是
1em
。我目前正在这样做:

const myDiv = document.getElementById("myDiv");
const myDivHeight = myDiv.offsetHeight;
myDiv.scrollTo(0, myDivHeight / 5); // 1em?? but not really...
然而,由于实际高度是以子像素为单位的,这有一些小问题,导致除以5只会导致一些实际问题


有更优雅的解决方案吗?提前感谢。

使用css calc功能。
scrollIntoView
可能是一个解决办法?@SergiuParaschiv这主意不错!但也许有一个稍微优雅一点的解决方案。。。(希望…@connexo)这是新的东西。你能描述一下我如何使用CSS控制(或者模拟控制)一个
的滚动吗?你能在#myDiv中创建一个(不可见的)元素,它离顶部1米,然后滚动到这个不可见的“marker”元素吗?