我试图让我的标签栏在使用动画向下滚动时消失。如果最后一个 y 坐标大于当前 y 坐标,则 onScroll 发送布尔值,它向上滚动,否则向下滚动。如果我继续向下滚动 onScroll 仍然会向我的函数发送真正的价值,并且动画会不止一次地工作。我如何禁用位置,以便只有 toValue 才能工作,并且我的函数不会一次又一次地触发,而从 onScroll 返回的布尔值是相同的。
function runTiming(value, dest) {
const clock = new Clock();
const state = {
finished: new Value(0),
position: new Value(0),
time: new Value(0),
frameTime: new Value(0),
};
const config = {
duration: 200,
toValue: new Value(0),
easing: Easing.inOut(Easing.cubic),
};
return block([
cond(clockRunning(clock), 0, [
set(state.finished, 0),
set(state.time, 0),
set(state.position, value),
set(state.frameTime, 0),
set(config.toValue, dest),
startClock(clock),
]),
timing(clock, state, config),
cond(state.finished, debug('stop clock', stopClock(clock))),
state.position,
]);
}