Οδηγοί · 04
Είσοδος και χειρονομίες
Γράψτε δείκτη, σύρση, κύλιση και άλλη είσοδο σε τιμές και αφήστε άλλες τιμές να τις ακολουθούν.
input(target, adapter)
Ένας προσαρμογέας εισόδου μετατρέπει τα συμβάντα του προγράμματος περιήγησης σε εγγραφές τιμών. Το input(ref, adapter) τον προσαρτά ως ελεγκτή· όταν δηλώνεται μέσα στο useAnimated, αφαιρείται κατά την αποπροσάρτηση ή όταν αλλάζει μια εξάρτηση.
Προσαρμογείς: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput και swipeInput.
Προετοιμασία παραδείγματος…
Σύρση με όρια και κίνηση μετά την απελευθέρωση
Το dragInput υποστηρίζει σύρση με δείκτη και πλήκτρα βέλους, bounds με αντίσταση elastic, momentum μετά την απελευθέρωση και μια συνάρτηση settle που επιλέγει το σημείο ηρεμίας από την προβλεπόμενη θέση.
Σε οθόνες αφής ορίζει το touch-action του στόχου όσο είναι προσαρτημένο, ώστε το πρόγραμμα περιήγησης να μην πάρει τη χειρονομία για κύλιση. Μια τιμή που ορίζετε εσείς έχει προτεραιότητα.
Προετοιμασία παραδείγματος…
Τσίμπημα, 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. Σε ένα συμβάν κύλισης, τα nativeEvent.contentOffset, contentSize και layoutMeasurement διαβάζονται από το στοιχείο που κυλά, οπότε οι αντιστοιχίσεις ScrollView μεταφέρονται αμετάβλητες.
const scrollY = useAnimatedValue(0);
<div onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollY } } }])} />;