8

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

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

这些是我的输入变量:

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

这是我要计算的:

  • 滚动条高度 - 例如。50像素??
4

3 回答 3

9

它通常是一个百分比。

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

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

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

因此,如果您的可见高度为 500 像素,内容为 50,000 像素,即使它应该使拇指螺丝高度为(500 像素的 1% = 5 像素)......请改用默认最小值(例如 20 像素)

于 2010-01-29T13:56:05.637 回答
0

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

但是我认为您需要对滚动条的最小尺寸进行一些下限,以便用户单击它。

于 2010-01-29T13:56:07.750 回答
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
于 2010-01-29T14:04:33.450 回答