ಮಾರ್ಗದರ್ಶಿಗಳು · 04
ಇನ್ಪುಟ್ ಮತ್ತು ಸನ್ನೆಗಳು
ಪಾಯಿಂಟರ್, ಎಳೆಯುವಿಕೆ, ಸ್ಕ್ರೋಲ್ ಮತ್ತು ಇತರ ಇನ್ಪುಟ್ಗಳನ್ನು ಮೌಲ್ಯಗಳಿಗೆ ಬರೆದು, ಇತರ ಮೌಲ್ಯಗಳು ಅವನ್ನು ಹಿಂಬಾಲಿಸುವಂತೆ ಮಾಡಿ.
input(target, adapter)
ಇನ್ಪುಟ್ ಅಡಾಪ್ಟರ್ ಬ್ರೌಸರ್ ಈವೆಂಟ್ಗಳನ್ನು ಮೌಲ್ಯ ಬರಹಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. input(ref, adapter) ಅದನ್ನು ಕಂಟ್ರೋಲರ್ ಆಗಿ ಜೋಡಿಸುತ್ತದೆ; useAnimated ಒಳಗೆ ಘೋಷಿಸಿದರೆ ಅನ್ಮೌಂಟ್ನಲ್ಲಿ ಅಥವಾ ಅವಲಂಬನೆ ಬದಲಾದಾಗ ತೆಗೆಯಲಾಗುತ್ತದೆ.
ಅಡಾಪ್ಟರ್ಗಳು: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput ಮತ್ತು swipeInput.
ಉದಾಹರಣೆ ಸಿದ್ಧವಾಗುತ್ತಿದೆ…
ಗಡಿಗಳು ಮತ್ತು ಬಿಡುಗಡೆ ಮೋಷನ್ನೊಂದಿಗೆ ಎಳೆಯುವಿಕೆ
dragInput ಪಾಯಿಂಟರ್ ಮತ್ತು ಬಾಣದ ಕೀ ಎಳೆಯುವಿಕೆ, elastic ಪ್ರತಿರೋಧದೊಂದಿಗೆ bounds, ಬಿಟ್ಟ ನಂತರ momentum, ಮತ್ತು ಅಂದಾಜು ಸ್ಥಾನದಿಂದ ವಿಶ್ರಾಂತಿ ಜಾಗ ಆರಿಸುವ settle ಫಂಕ್ಷನ್ ಬೆಂಬಲಿಸುತ್ತದೆ.
ಟಚ್ ಪರದೆಗಳಲ್ಲಿ ಮೌಂಟ್ ಆಗಿರುವಾಗ ಗುರಿಯ touch-action ಹೊಂದಿಸುತ್ತದೆ, ಹೀಗಾಗಿ ಬ್ರೌಸರ್ ಸನ್ನೆಯನ್ನು ಸ್ಕ್ರೋಲ್ ಎಂದು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ. ನೀವೇ ಹೊಂದಿಸಿದ ಮೌಲ್ಯಕ್ಕೆ ಆದ್ಯತೆ.
ಉದಾಹರಣೆ ಸಿದ್ಧವಾಗುತ್ತಿದೆ…
Pinch, viewport ಮತ್ತು media
input ನ ಐಚ್ಛಿಕ ಮೂರನೇ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪ್ರತಿ ಪ್ರತಿಕ್ರಿಯೆ ಈವೆಂಟ್ ಪಡೆಯುತ್ತದೆ, ಹೀಗಾಗಿ ಅಡಾಪ್ಟರ್ ತನ್ನ ಅಂಚುಗಳಲ್ಲೂ ಮೋಷನ್ ಆರಂಭಿಸಬಲ್ಲದು.
const card = useRef(null);
const pinch = useAnimated(
{ scale: 1, rotation: 0 },
(value) => {
input(card, pinchInput({ scale: value.scale, rotation: value.rotation, minScale: 0.5 }));
},
[],
);
const reveal = useAnimated(
0,
(value) => {
input(card, viewportInput({ once: true }), (event) => {
if (event.phase === 'in') spring(value, { toValue: 1 }).start();
});
},
[],
);Animated.event
React Native ಈವೆಂಟ್ ಮ್ಯಾಪಿಂಗ್ಗಳು DOM ಈವೆಂಟ್ಗಳ ಮೇಲೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ. scroll ಈವೆಂಟ್ನಲ್ಲಿ nativeEvent.contentOffset, contentSize ಮತ್ತು layoutMeasurement ಸ್ಕ್ರೋಲ್ ಮಾಡಿದ ಎಲಿಮೆಂಟ್ನಿಂದ ಓದಲಾಗುತ್ತವೆ, ಹೀಗಾಗಿ ScrollView ಮ್ಯಾಪಿಂಗ್ಗಳನ್ನು ಬದಲಾವಣೆ ಇಲ್ಲದೆ ತರಬಹುದು.
const scrollY = useAnimatedValue(0);
<div onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollY } } }])} />;