Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用scrollTo、scrollTop等在javascript中指定像素以外的单位。?_Javascript_Dom_Scroll_Units Of Measurement - Fatal编程技术网

如何使用scrollTo、scrollTop等在javascript中指定像素以外的单位。?

如何使用scrollTo、scrollTop等在javascript中指定像素以外的单位。?,javascript,dom,scroll,units-of-measurement,Javascript,Dom,Scroll,Units Of Measurement,我有一个使用REMs而不是像素构建的完整网站 该网站比窗口宽40%,因此页面的20%隐藏在两侧 因此,我需要找到一种方法,在加载页面时水平滚动,使页面居中 页面的宽度为140 rem,窗口的宽度为100 rem 所以我可以将scrollLeft设置为20%或20rem,但当我使用: document.body.scrollLeft = '20rem'; 它不起作用。我尝试过很多其他的事情,但都不走运 是否可以使用像素以外的单位来控制滚动? 我真的不想在页面上添加对象,而必须滚动到该对象。编写一

我有一个使用REMs而不是像素构建的完整网站

该网站比窗口宽40%,因此页面的20%隐藏在两侧

因此,我需要找到一种方法,在加载页面时水平滚动,使页面居中

页面的宽度为140 rem窗口的宽度为100 rem

所以我可以将scrollLeft设置为20%或20rem,但当我使用:

document.body.scrollLeft = '20rem';
它不起作用。我尝试过很多其他的事情,但都不走运

是否可以使用像素以外的单位来控制滚动?


我真的不想在页面上添加对象,而必须滚动到该对象。

编写一个转换器,该转换器接受REM值并将其转换为像素。然后,只需获取给定REM值的像素值,并将像素值放入滚动函数。

您如何知道窗口的宽度为100rem?我这样定义它,以便我可以在任何地方使用REM,并使窗口保持完全相同:var pixel=(window.innerWidth)/100;document.documentElement.style.fontSize=像素+'px';我明白了。在这种情况下,我建议使用
pixel
将REM值转换为像素,并将其传递给所有
scroll*
值,正如答案中所建议的那样。不幸的是,我们生活在一个像素世界。是的,这就是我要做的。我确实写了一个程序来解决这个问题,但我想知道是否有一种方法可以直接设置值,而不需要转换任何东西。一堆谷歌搜索什么也没找到,所以我想这是不可能的。但我想确定一下。