如何在更高的页面上制作比屏幕高度更高的浮动面板,以便面板始终保持可见状态,但滚动条足以显示其所有部分?*响应*位置:固定面板?
这让我感觉和更常见的“panel that stays in one spot”类似,但是带来了额外的挑战:因为我的魔法面板比窗口高,所以将面板顶部固定在屏幕顶部(或者的确, 任意位置)意味着面板的较低区域永远不会显示。
可能有其他的方式来实现目标,但FWIW我设想是
- 当页面滚动到顶部,面板的顶部是在其显示区域的顶部。
- 当页面向下滚动一点时,面板保持与它同步,向下滚动像素 - 像素 - 它的行为为
position:static
(默认值)。 - 当事情向下滚动到足以暴露面板的底部时,它会以普通的“保持一个点”的样式钉在那里,允许页面进一步向下滚动,同时保持面板底部可见且不移动 - 它变成
position:fixed
。
我想#2也可以是比例滚动,如果可能的话,这样当窗口向下滚动,比如它的整个行程的30%时,面板也滚动下来30%的行程。
具体来说,假设页面高度为1000行,面板高度为200行,窗口高度为100行。
- 顶部,页面的第1行位于窗口的顶部,面板的第1行位于窗口的顶部。
- 向下滚动一下,每行10行在顶部。
- 当滚动到达位于顶部的页面的第101行时,将面板滚动到该位置将其底部移动到窗口底部的上方。相反,当您向下滚动时,它会保留顶部的100行,并保持
position:fixed
。
你有没有试过一些代码? – DaniP
嗯,我试着将'top'设置为百分比,但是这并没有改变定位逻辑(如果是'static',它保持在窗口高度的30%或其他值)。 – jackr