返回
把门打开
前端
2023-11-20 07:16:11
在React Native中实现门开合动画,这是一种以左边缘为中心旋转的动画。它可以为您的应用程序添加一些交互性和趣味性。
import React, { useState } from "react";
import { StyleSheet, View, TouchableOpacity, Text } from "react-native";
const App = () => {
const [isOpen, setIsOpen] = useState(false);
const toggleDoor = () => {
setIsOpen(!isOpen);
};
return (
<View style={styles.container}>
<TouchableOpacity style={styles.door} onPress={toggleDoor}>
<Text style={styles.doorText}>{isOpen ? "关门" : "开门"}</Text>
</TouchableOpacity>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
door: {
width: 200,
height: 200,
backgroundColor: "red",
justifyContent: "center",
alignItems: "center",
transform: [{ rotate: isOpen ? "90deg" : "0deg" }],
},
doorText: {
color: "white",
fontSize: 20,
},
});
export default App;
这个动画由三个主要部分组成:
TouchableOpacity
:这是一个可以被点击的组件,当用户点击它时,它将调用toggleDoor
函数。View
:这是一个包含门内容的组件。它被设置为transform: [{ rotate: isOpen ? "90deg" : "0deg" }]
,这意味着当isOpen
状态为true时,门将旋转90度,否则,门将保持关闭状态。Text
:这是一个显示“开门”或“关门”文本的组件。
当用户点击“开门”按钮时,toggleDoor
函数将被调用,它将设置isOpen
状态为true,这将导致门旋转90度。当用户点击“关门”按钮时,toggleDoor
函数将被再次调用,它将设置isOpen
状态为false,这将导致门关闭。