Реактивный пользовательский слайдер с использованием diffClamp - PullRequest
0 голосов
/ 13 апреля 2020

Я сделал специальный слайдер, который можно увидеть здесь .

Проблема в следующем фрагменте

let transX = cond(
  eq(gestureState, State.ACTIVE),
  diffClamp(add(offsetX, dragX), 0, 200),
  set(offsetX, add(offsetX, dragX)),
);

Я могу ограничить диапазон ползунка, когда жест активен, но я не могу установить предел, когда жест завершен.

Я попытался добавить diffClamp к методу set в cond, но это фиксирует положение ручки на старте, и весь слайдер ведет себя странным образом.

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 26 апреля 2020

Я видел некоторые проблемы при попытке реализовать нечто подобное, используя diffClamp, где diffClamp не назначит узел в set. Я бы предложил реализовать diffClamp с использованием min и max.

Примерно так:

let transX = cond(
  eq(gestureState, State.ACTIVE),
  max(0, min(200, add(offsetX, dragX))),
  set(offsetX, max(0, min(200, add(offsetX, dragX)))),
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...