根据隐藏内容的数量计算滚动条高度

时间:2010-01-29 13:50:51

标签: user-interface scrollbar formula

我正在创建一个图形滚动条,因此我需要手动计算滚动条高度。您知道在大多数应用程序中滚动条高度是如何根据滚动的数量而变化的吗?

根据隐藏内容的数量计算滚动条高度的公式是什么?它是对数还是指数还是仅仅基于可见内容与隐藏内容的百分比?

这些是我的输入变量:

  • 可见区域 - 例如。 100 px
  • 内容高度 - 例如。 1000 px
  • 最大滚动条高度 - 例如500 px

这是我想要计算的:

  • 滚动条高度 - 例如50 px ??

3 个答案:

答案 0 :(得分:9)

通常是一个百分比。

E.g。如果可见区域是整个区域的99%,则滚动条的高度为99%。

同样,如果可见区域是整个区域的50%,则滚动条的高度为50%。

确保最小尺寸合理(例如至少18-20px)

因此,如果你的可见高度为500px,内容为50,000px,即使它 使拇指螺丝高度为(1%500px = 5px)...使用默认最小值相反(例如20px)

答案 1 :(得分:0)

我会使用procent。因此,如果可见区域是内容高度的45%。滚动条高度将是最大滚动条高度的45%。这感觉一开始就适合。因此,如果您看到顶部的滚动条,您就知道它的内容会增加一倍。

但是我觉得你需要一些下限来指示用户点击它时滚动条的小小。

答案 2 :(得分:0)

我认为线性公式会很好。假设最大滚动条高度与最大可见区域高度相同,则伪代码将如下所示:

scrollbar_visible=true;
if (content_height < visible_height) {scrollbar_visible = false; return;} // hide the scrollbar if there'se nothing to scroll
scrollbar_height = visible_height/content_height;
scrollbar_height = min(scrollbar_height, min_scrollbar_height); // don't let the scrollbar become smaller than some predefined size