Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_Html_Css_Math - Fatal编程技术网

Javascript 如何计算从粘性起点到粘性终点的滚动距离?

Javascript 如何计算从粘性起点到粘性终点的滚动距离?,javascript,html,css,math,Javascript,Html,Css,Math,我的html页面上有一个粘性容器,如下所示: 部分{ 高度:250vh; 宽度:100%; } .粘的{ 位置:粘性; 排名:0; } 我想计算从“粘滞开始”到“粘滞结束”的滚动距离,这样我就知道在“我的粘滞容器”不再粘到视口顶部之前需要滚动多少像素 我尝试过这样的计算: 让stickyEnd=1//1表示100%; 设stickyLength=window.innerHeight/250*100//1690px(在px中转换250vh) 设stickyEnd=stickyEnd*stick

我的html页面上有一个粘性容器,如下所示:


部分{
高度:250vh;
宽度:100%;
}
.粘的{
位置:粘性;
排名:0;
}
我想计算从“粘滞开始”到“粘滞结束”的滚动距离,这样我就知道在“我的粘滞容器”不再粘到视口顶部之前需要滚动多少像素

我尝试过这样的计算:

让stickyEnd=1//1表示100%;
设stickyLength=window.innerHeight/250*100//1690px(在px中转换250vh)
设stickyEnd=stickyEnd*stickyLength/1//1690px
因此,结果是,我需要滚动
1690px
,然后粘滞容器不再粘在视口顶部,但这是不正确的。当我从视口顶部滚动
1690px
时,粘性容器100%不可见


那么我需要改变什么才能得到正确的滚动距离呢?

在这种情况下,我找到了正确的计算方法

let stickyOffsetHeight=document.querySelector('.sticky').offsetHeight;
设stickyEnd=1//1表示100%;
设stickyLength=window.innerHeight/250*100//1690px(在px中转换250vh)
设stickyEnd=(stickyEnd*stickyLength/1)-StickyOffseSight;
简短解释:


在上面的示例中,粘性元素的父元素是
250vh
,这意味着粘性元素的高度不是
250vh
。高度基于粘滞元素内的内容。因此,我们需要扣除
粘滞偏移量
,得到正确的结果

如果您提供一个工作示例。提供一个solution@MrKhan我正在与苗条的框架。我可以给你一个回复。那可以吗?不,那对我没好处。试着再详细一点。我对你的问题的理解是,粘性标题位于下面的某个地方,并且还没有粘性。你滚动到它,它就会变粘。你需要知道的是,在什么位置它会停止粘性。