Вычислите высоту полосы прокрутки согласно сумме скрытого содержания

Я создаю графическую полосу прокрутки, таким образом, я должен вычислить высоту полосы прокрутки вручную. Вы знаете, как в большинстве приложений высота полосы прокрутки изменяется на основе того, сколько там должен прокрутить?

Какова формула для вычисления высоты полосы прокрутки на основе суммы скрытого содержания? Это - logarithimic или экспоненциал или просто явно на основе процента содержания, видимого по сравнению со скрытым содержанием?

Это мои входные переменные:

  • Видимая область - например, 100 пкс
  • Высота содержания - например, 1 000 пкс
  • Высота полосы прокрутки Max - например, 500 пкс

Это - то, что я хочу вычислить:

  • Высота полосы прокрутки - например, 50 пкс??
8
задан Robinicks 29 January 2010 в 13:50
поделиться

3 ответа

Обычно это процент.

E.g. Если видимая площадь составляет 99% от полной области, полоса прокрутки составляет 99% от высоты.

Аналогично, если видна составляет 50% от полной области, прокрутка составляет 50% от высоты.

Просто обязательно сделайте минимальный размер что-то разумное (например, как минимум 18-20 пиксель)

Таким образом, если у вас есть видимая высота 500 пикселей, а содержание 50 000 пирок, хотя это должно сделать Высота винта большого пальца (1% от 500 пикселей = 5 шт.) ... Вместо этого используйте минимум по умолчанию (например, 20PX)

9
ответ дан 5 December 2019 в 18:59
поделиться

Я думаю, что линейная формула будет просто отлично. Предположим, что максимальная высота прокрутки такая же, как максимальная высота видимой области, псевдокод был бы таким:

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
0
ответ дан 5 December 2019 в 18:59
поделиться

Я бы использовал Procentent. Так что если видимая площадь составляет 45% от высоты контента. Высота прокрутки будет 45% от максимальной высоты прокрутки. Это чувствует себя правильно на начало. Поэтому, если вы видите прокрутку в топе, вы знаете, что это вокруг двойного дополнительного контента.

Но я думаю, что вам нужен нижний предел на то, насколько маленьким прокрутка может быть на заказ, чтобы пользователь нажать на него.

0
ответ дан 5 December 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: