Пришла в голову такая идея: скроллбар с линзой и с прогрессивной характеристикой.
Вокруг текущей позиции есть область увеличения, перемещение и клики мыши в её пределах вызывает более точное позиционирование.
Если мышь отвести за пределы линзы, то через некоторое время линза переместится под мышь.
Почему и для чего?
Во-первых, меня достало, что ворд и акробат стремительно прыгают по страницам.
Например, если в документе 1000 страниц, а высота вертикального скроллбара 500 пикселов, то при всём желании я не смогу попасть на нечётную страницу с первой попытки: субпиксельное наведение мыши невозможно.
В то же время, перелистывание физических толстых книг не затрудняет:
— мгновенно наугад открываю (примерно по толщине) — это как бы клик мышкой по скроллбару
— быстро перелистываю стопку соседних страниц — это как бы тяну с большой скоростью
— затем медленно и вдумчиво перелистываю постранично — это как бы тяну или кликаю в области линзы.
Линзу на скроллбаре (или на трекере — в общем-то, не принципиально) можно отображать
— во-первых, сменой шага засечек
— во-вторых, утолщением полоски
— в-третьих, светотенью
Вот примерно так (очень грубо, извините — не дизайнер).
Сразу же возник вопрос о математической стороне этого явления. Нужно отобразить пикселы на логические координаты и обратно.
Это некая кусочно-линейная функция или кусочный сплайн (возможно, с вертикальными участками, т.е. часть логических координат окажется в слепых зонах под линзой).
Переместим мышь от точки фокуса линзы в сторону. Было бы неплохо, чтобы после того, как линза переедет вслед за мышью, логическая координата под мышью осталась неизменной.
Подвигав мышь туда-сюда, мы можем замести семейством функций весь квадрат (диапазон_логических_координат)x(диапазон_пикселов). А вот этого не хочется.
Поэтому на повестке 4 пункта
— полезность
— юзабельность
— дизайн
— математика