Про mouse wheel вопрос имею ...
От: c-smile Канада http://terrainformatica.com
Дата: 07.08.15 20:14
Оценка:
Вот что означает прокрутка колеса на один оборот ?

Варианты:

1. Весь scrollable content c начала до конца, т.е. scroll step = doc size * wheel rotation / 360
2. На некое фиксированное кол-во пикселей , т.е. scroll step = view size * wheel rotation / 360

Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.
Но все делают №2...
Re: Про mouse wheel вопрос имею ...
От: wildwind Россия  
Дата: 07.08.15 22:45
Оценка:
Здравствуйте, c-smile, Вы писали:

c> Вот что означает прокрутка колеса на один оборот ?


c> Варианты:


c> 1. Весь scrollable content c начала до конца, т.е. scroll step = doc size * wheel rotation / 360

c> 2. На некое фиксированное кол-во пикселей , т.е. scroll step = view size * wheel rotation / 360

Начнем с того, как выполнить "прокрутку колеса на один оборот"? Я вот не встречал мышей, которые это позволяют. Все позволяют прокрутить на ход пальца, и это реализует вариант 2. А для варианта 1 производители уже придумали колесо с инерцией. Выбери такую мышь и наслаждайся.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[2]: Про mouse wheel вопрос имею ...
От: c-smile Канада http://terrainformatica.com
Дата: 08.08.15 04:47
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, c-smile, Вы писали:


c>> Вот что означает прокрутка колеса на один оборот ?


c>> Варианты:


c>> 1. Весь scrollable content c начала до конца, т.е. scroll step = doc size * wheel rotation / 360

c>> 2. На некое фиксированное кол-во пикселей , т.е. scroll step = view size * wheel rotation / 360

W>Начнем с того, как выполнить "прокрутку колеса на один оборот"? Я вот не встречал мышей, которые это позволяют. Все позволяют прокрутить на ход пальца, и это реализует вариант 2. А для варианта 1 производители уже придумали колесо с инерцией. Выбери такую мышь и наслаждайся.


Я не это имею ввиду.

Скажем ты повернул колесо на 30 градусов и view проскролировалось на 30/360 = 1/12 от высоты документа.
Может быть какой понижающий коэффициент, но главное пропорциональный длине документа, а не view.
Re[3]: Про mouse wheel вопрос имею ...
От: wildwind Россия  
Дата: 08.08.15 05:44
Оценка:
Здравствуйте, c-smile, Вы писали:

c> Скажем ты повернул колесо на 30 градусов и view проскролировалось на 30/360 = 1/12 от высоты документа.


Насколько мне известно, цифру 30 взять неоткуда. Нет понятия "оборот", есть только "шаг" и все.

c> Может быть какой понижающий коэффициент, но главное пропорциональный длине документа, а не view.


Сомнительная затея. Бываю такие документы, что один шаг будет больше всего view.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re: Про mouse wheel вопрос имею ...
От: Pavel Dvorkin Россия  
Дата: 08.08.15 05:58
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Вот что означает прокрутка колеса на один оборот ?


Если речь идет о Windows, то, строго говоря

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx

SPI_GETWHEELSCROLLLINES
Retrieves the number of lines to scroll when the vertical mouse wheel is moved. The pvParam parameter must point to a UINT variable that receives the number of lines. The default value is 3.
SPI_GETWHEELSCROLLCHARS
Retrieves the number of characters to scroll when the horizontal mouse wheel is moved. The pvParam parameter must point to a UINT variable that receives the number of lines. The default value is 3.

Ну м учитывать скорость вращения (the distance the wheel is rotated), см. мой ответ wildwind.
With best regards
Pavel Dvorkin
Отредактировано 08.08.2015 6:03 Pavel Dvorkin . Предыдущая версия .
Re[4]: Про mouse wheel вопрос имею ...
От: Pavel Dvorkin Россия  
Дата: 08.08.15 06:01
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Насколько мне известно, цифру 30 взять неоткуда. Нет понятия "оборот", есть только "шаг" и все.


Есть дистанция

https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms645617(v=vs.85).aspx

wParam
The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user.
With best regards
Pavel Dvorkin
Re: Про mouse wheel вопрос имею ...
От: vsb Казахстан  
Дата: 08.08.15 06:06
Оценка:
Есть некий минимальный шаг. Например 15 пикселей на один щелчок. Если следующий щелчок пришел через небольшой промежуток времени и в том же направлении, что и предыдущий щелчок, то этот шаг временно увеличивается, чтобы можно было быстрой прокруткой колеса промотать побольше, в общем ускорение прокрутки. Имхо, это самое удобное.

И ещё очень большая просьба. Если у вас есть поддержка OS X, разберитесь, как там работает trackpad и сделайте, чтобы прокрутка работала аналогично Safari (и вообще родным скроллам). Столько браузеров поддерживают его криво, по сути только из-за этого не могу ими пользоваться, пусть в мире станет немного лучше.
Re[5]: Про mouse wheel вопрос имею ...
От: wildwind Россия  
Дата: 08.08.15 06:13
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD> W>Насколько мне известно, цифру 30 взять неоткуда. Нет понятия "оборот", есть только "шаг" и все.


PD> Есть дистанция


Ну а я о чем? Есть количество шагов, есть абстрактный коэффициент, но соотнести это с полным оборотом нельзя.

В линуксовом API скролл вообще серией кликов передается.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[3]: Про mouse wheel вопрос имею ...
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 08.08.15 06:48
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Скажем ты повернул колесо на 30 градусов и view проскролировалось на 30/360 = 1/12 от высоты документа.

CS>Может быть какой понижающий коэффициент, но главное пропорциональный длине документа, а не view.

Обычно скорость прокрутки фиксированная, а не пропорциональная длине документа или видимой области. В системных настройках Windows это по умолчанию три строки/символа за шаг. Если сделать шаг зависимым от длины документа, то колесом будет удобней пользоваться для навигации и невозможно для чтения.

Касательно градусов, у меня нет интуитивного представления о радиусе колеса и я не знаю угловой размер хода пальца. Плюс, есть сенсорные колёса, к которым это понятие не применимо.
Ce n'est que pour vous dire ce que je vous dis.
Re: Про mouse wheel вопрос имею ...
От: Ops Россия  
Дата: 08.08.15 10:21
Оценка: +1
Здравствуйте, c-smile, Вы писали:

CS>Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.

CS>Но все делают №2...

Если делать 1, то в больших документах 1 щелчок колеса будет больше видимой области.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Про mouse wheel вопрос имею ...
От: btn1  
Дата: 09.08.15 18:21
Оценка: +2
Здравствуйте, c-smile, Вы писали:

CS>Вот что означает прокрутка колеса на один оборот ?


В корне неверный вопрос — отсюда у тебя и в корне неверный ответ.
Правильный вопрос: на сколько нужно смещать страницу при прокрутке колеса на 1 градус?
Другими словами, колесо прокрутки НЕ ИМЕЕТ ОБОРОТОВ, ибо никто и никогда их не считал. Значение имеет только "среднестатистический мазок" указательным пальцем — его должно хватать на 1-2 страницы текста (ставится по вкусу).
Re[2]: Про mouse wheel вопрос имею ...
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 09.08.15 18:31
Оценка:
Здравствуйте, btn1, Вы писали:

B>В корне неверный вопрос — отсюда у тебя и в корне неверный ответ.

B>Правильный вопрос: на сколько нужно смещать страницу при прокрутке колеса на 1 градус?

Это же одно и то же, только с разницей в 360 раз.
Ce n'est que pour vous dire ce que je vous dis.
Re[3]: Про mouse wheel вопрос имею ...
От: Stanislaw K СССР  
Дата: 10.08.15 13:35
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я не это имею ввиду.


CS>Скажем ты повернул колесо на 30 градусов и view проскролировалось на 30/360 = 1/12 от высоты документа.

CS>Может быть какой понижающий коэффициент, но главное пропорциональный длине документа, а не view.

дело в том что, драйвер мыши один а сами мыши разные, одна на полный оборот колеса дает 121 импульсов датчика, другая 133, третья 84.
Все проблемы от жадности и глупости
Re: Про mouse wheel вопрос имею ...
От: Alexander G Украина  
Дата: 12.08.15 06:33
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Вот что означает прокрутка колеса на один оборот ?


CS>Варианты:


CS>1. Весь scrollable content c начала до конца, т.е. scroll step = doc size * wheel rotation / 360

CS>2. На некое фиксированное кол-во пикселей , т.е. scroll step = view size * wheel rotation / 360

CS>Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.

CS>Но все делают №2...

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

Колесо крутят, когда читают документ.
В случае №1 читать большой документ так не получится.
Русский военный корабль идёт ко дну!
Re[2]: Про mouse wheel вопрос имею ...
От: c-smile Канада http://terrainformatica.com
Дата: 13.08.15 23:51
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>Здравствуйте, c-smile, Вы писали:


CS>>Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.

CS>>Но все делают №2...

Ops>Если делать 1, то в больших документах 1 щелчок колеса будет больше видимой области.


Это частности. Можно cap поставить на размер view если надо.

Ну вот например touch скроллирование (a.k.a. kinetic) , сильнее/дальше дергаешь — скроллируется заведомо больше view.
Почему с колесом не так.
Re[3]: Про mouse wheel вопрос имею ...
От: wildwind Россия  
Дата: 14.08.15 05:57
Оценка:
Здравствуйте, c-smile, Вы писали:

c> Ну вот например touch скроллирование (a.k.a. kinetic) , сильнее/дальше дергаешь — скроллируется заведомо больше view.

c> Почему с колесом не так.

Так, если колесо с инерцией. Тач и колесо с инерцией поддерживают оба сценария — и далекую, и близкую прокрутку. А простое колесо — только один. Аппаратное ограничение, смирись.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[3]: Про mouse wheel вопрос имею ...
От: Ops Россия  
Дата: 14.08.15 07:00
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Это частности. Можно cap поставить на размер view если надо.


Это уже костыль будет, пропадет единообразие.

CS>Ну вот например touch скроллирование (a.k.a. kinetic) , сильнее/дальше дергаешь — скроллируется заведомо больше view.

CS>Почему с колесом не так.

У типичного колеса ход маленький, сложно найти компромисс между скоростью и точностью, решили в пользу точности.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Про mouse wheel вопрос имею ...
От: goto Россия  
Дата: 19.08.15 13:02
Оценка:
Я бы сказал, вращение колеса на 1 шелчок/тик подобно прокрутке документа скроллбаром на 1 линию (нажатие на нарисованную стрелочку скроллбара, сообщ. SB_LINEUP/DOWN win32).

Понятия "оборот" там нет, и я думаю, юзер при работе колесом никак не оперирует оболротами, не представляет их себе мысленно. Есть только щелчки, а колесо — не колесо, а бесконечный линейный ползунок.
Re: Про mouse wheel вопрос имею ...
От: Аноним  
Дата: 20.08.15 14:36
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.


Пожалуйста, не надо. Из-за твоей инерционной прокрутки уже приходится херову прорву TIS'а писать, чтобы вернуть все к простому поведению, которого хотят юзеры (и громко выражают недовольство). А если еще новые эксперименты добавятся... Хотя, так и так сейчас прокрутку приходится самому писать. Хуже уже быть не может.
Re[2]: Про mouse wheel вопрос имею ...
От: c-smile Канада http://terrainformatica.com
Дата: 30.08.15 14:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, c-smile, Вы писали:


CS>>Ловлю себя на мысли что чаще хочется №1. Уж больно пальцем дергать часто приходится.


А>Пожалуйста, не надо. Из-за твоей инерционной прокрутки уже приходится херову прорву TIS'а писать, чтобы вернуть все к простому поведению, которого хотят юзеры (и громко выражают недовольство). А если еще новые эксперименты добавятся... Хотя, так и так сейчас прокрутку приходится самому писать. Хуже уже быть не может.


Если TIS это tiscript в Sciter то в нем есть scroll-manner() в котором задается как кинетический скрол так и отменяется оный.
Мвтчасть или хотя бы примеры в sdk\samples\scrollbars-n-scrolling тоже полезно глянуть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.