如何在更高的页面中制作比屏幕高度更高的浮动面板,以使面板始终保持可见,但滚动到足以显示它的所有部分?
这让我觉得类似于更常见的“停留在一个位置的面板”,但有一个额外的挑战:因为我的魔法面板比窗口高,所以将面板的顶部固定在屏幕的顶部(或者,实际上,屏幕上的任何位置)表示面板的下部区域永远无法显示。
可能还有其他方法可以实现目标,但我的设想是 FWIW
- 当页面滚动到顶部时,面板的顶部位于其显示区域的顶部。
- 当页面向下滚动一点时,面板与它保持同步,逐像素向下滚动——它的行为
position:static
(默认)。 - 当内容向下滚动到足以露出面板底部时,它会以普通的“停留在一个位置”样式固定在那里,允许页面进一步向下滚动,同时保持面板底部可见且不移动——它变为
position:fixed
.
我猜#2 也可能是按比例滚动,如果可能的话,这样当窗口向下滚动时,比如说,它全部行程的 30%,面板也会向下滚动 30% 的行程。
具体来说,假设页面高度为 1000 行,面板高度为 200 行,窗口高度为 100 行。
- 在顶部,页面的第 1 行位于窗口的顶部,面板的第 1 行位于窗口的顶部。
- 向下滚动一点,每行的第 10 行位于顶部。
- 当滚动到位于顶部的页面的第 101 行时,将面板滚动到该位置会将其底部移动到窗口底部上方。因此,它会将其第 100 行留在顶部,并
position:fixed
在您进一步向下滚动时保持不变。