Я создаю графическую полосу прокрутки, таким образом, я должен вычислить высоту полосы прокрутки вручную. Вы знаете, как в большинстве приложений высота полосы прокрутки изменяется на основе того, сколько там должен прокрутить?
Какова формула для вычисления высоты полосы прокрутки на основе суммы скрытого содержания? Это - logarithimic или экспоненциал или просто явно на основе процента содержания, видимого по сравнению со скрытым содержанием?
Это мои входные переменные:
Это - то, что я хочу вычислить:
Обычно это процент.
E.g. Если видимая площадь составляет 99% от полной области, полоса прокрутки составляет 99% от высоты.
Аналогично, если видна составляет 50% от полной области, прокрутка составляет 50% от высоты.
Просто обязательно сделайте минимальный размер что-то разумное (например, как минимум 18-20 пиксель)
Таким образом, если у вас есть видимая высота 500 пикселей, а содержание 50 000 пирок, хотя это должно сделать Высота винта большого пальца (1% от 500 пикселей = 5 шт.) ... Вместо этого используйте минимум по умолчанию (например, 20PX)
Я думаю, что линейная формула будет просто отлично. Предположим, что максимальная высота прокрутки такая же, как максимальная высота видимой области, псевдокод был бы таким:
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
Я бы использовал Procentent. Так что если видимая площадь составляет 45% от высоты контента. Высота прокрутки будет 45% от максимальной высоты прокрутки. Это чувствует себя правильно на начало. Поэтому, если вы видите прокрутку в топе, вы знаете, что это вокруг двойного дополнительного контента.
Но я думаю, что вам нужен нижний предел на то, насколько маленьким прокрутка может быть на заказ, чтобы пользователь нажать на него.