Javascript 如何计算从粘性起点到粘性终点的滚动距离?
我的html页面上有一个粘性容器,如下所示: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
部分{
高度: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我正在与苗条的框架。我可以给你一个回复。那可以吗?不,那对我没好处。试着再详细一点。我对你的问题的理解是,粘性标题位于下面的某个地方,并且还没有粘性。你滚动到它,它就会变粘。你需要知道的是,在什么位置它会停止粘性。