Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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
Javascript 有人能解释一下这个简单的代码吗?滚动指示器_Javascript - Fatal编程技术网

Javascript 有人能解释一下这个简单的代码吗?滚动指示器

Javascript 有人能解释一下这个简单的代码吗?滚动指示器,javascript,Javascript,这是一个在互联网上找到的创建滚动指示器的简单代码,但问题是我不理解它背后的逻辑。。。。为什么要减去最大高度和内部高度,然后用结果除法,为什么要乘以100,这背后的逻辑是什么? 另外,我知道: scrollHeight返回HTMLdocument的完整高度。 innerHeight返回可查看窗口的高度(带滚动条) pageYoffset与ScrollY返回滚动的像素数是一样的 这是为什么使用而不是如何使用的问题 const progressbar=document.querySelector('

这是一个在互联网上找到的创建滚动指示器的简单代码,但问题是我不理解它背后的逻辑。。。。为什么要减去最大高度和内部高度,然后用结果除法,为什么要乘以100,这背后的逻辑是什么? 另外,我知道:
scrollHeight
返回HTMLdocument的完整高度。
innerHeight
返回可查看窗口的高度(带滚动条)
pageYoffset
与ScrollY返回滚动的像素数是一样的 这是为什么使用而不是如何使用的问题

const progressbar=document.querySelector('.scroll--progress');
常量滚动=()=>{
//返回整个页面的滚动高度
const maxHeight=document.body.scrollHeight;
//返回视口的内部高度
const inner=window.innerHeight;
常数a=最大高度-内部高度;
const t=Math.round(window.pageYOffset);
常数b=(window.scrollY/a)*100;
//设置进度条宽度
progressbar.style.width=`${b}`+'%;
};

window.addEventListener(“滚动”,滚动)使用pageYOffset有更好的交叉兼容性;除非有一个场景证明它有用,否则我不会使用scrollY。罕见的浏览器案例


scrollY和pageYOffset是一样的!但是MDN上的所有浏览器都支持pageYOffset。

我已经知道并提到了这一点:(我们将偏移量除以100,得到%1-100。没有更多的逻辑。我们需要这些偏移量,所以我们不包括不在“屏幕”之外的像素。偏移量是什么?