2010-01-29 88 views
6

我創建了一個圖形滾動條,因此我需要手動計算滾動條高度。你知道在大多數應用程序中,滾動條高度是如何根據滾動的數量而變化的?根據隱藏內容的數量計算滾動條高度

根據隱藏內容的數量計算滾動條高度的公式是多少?它是對數還是指數還是明顯基於可見內容與隱藏內容的百分比?

這些都是我的輸入變量:

  • 可視區域 - 如。 100 px
  • 內容高度 - 例如。 1000 px
  • 最大滾動條高度 - 例如。 500像素

這是我想計算一下:

  • 滾動條的高度 - 如。 50 px ??

回答

7

它通常是一個百分比。

E.g.如果可見區域是整個區域的99%,則滾動條是高度的99%。

同樣,如果可見性是整個區域的50%,則滾動條是高度的50%。

只要確保使最小尺寸合理的東西(例如,至少18-20px)

因此,如果你有一個500像素可見高度和50,000px內容,即使它應該使拇指螺絲高度(500px = 5px的1%)...使用默認最小值(例如20px)

+1

如何將運動與%!關聯起來? 就像我將滾動條移動5px一樣,我應該移動div的頂部多少? – 2013-09-16 10:15:20

+0

通過執行三個用於計算高度的相同規則,反之亦然。 – maxdev 2016-04-26 10:25:57

0

我會使用procent。所以如果可見區域是內容高度的45%。滾動條高度將是最大滾動條高度的45%。這感覺是正確的開始。所以如果你看到頂部的滾動條,你會發現它的內容大約增加了一倍。

但我認爲你需要一些下拉滾動條的小小,以便用戶點擊它。

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