React Native 中,实现投影(shadow)效果
1. 效果:
2. 实现:
import React from 'react'; import { View, Text, StyleSheet } from 'react-native'; const ShadowExample = () => { return ( <View style={styles.container}> <View style={styles.shadowBox}> <Text style={styles.text}>Hello, Shadow!</Text> </View> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, shadowBox: { width: 200, height: 100, backgroundColor: '#fff', borderRadius: 8, elevation: 16, // Android 投影 shadowColor: '#000', // iOS 投影 shadowOffset: { width: 0, height: 10 }, shadowOpacity: 0.3, shadowRadius: 16, }, text: { fontSize: 16, fontWeight: 'bold', textAlign: 'center', }, }); export default ShadowExample;
说明:在上面的例子中,elevation 属性用于在 Android 设备上创建投影效果,而在 iOS 设备上,shadowColor、shadowOffset、shadowOpacity 和 shadowRadius 属性用于创建投影效果。可以根据需要调整这些属性的值。
3. 文档:
react native shadow-props 文档
elevation 介绍
4. 属性对比:
在 CSS 中,box-shadow 属性包含如下几种:
box-shadow: h-offset v-offset blur-radius spread-radius color inset;
- h-offset(水平偏移):必填。阴影的水平偏移量。正值会使阴影向右偏移,负值则向左偏移。
- v-offset(垂直偏移):必填。阴影的垂直偏移量。正值使阴影向下偏移,负值则向上偏移。
- blur-radius(模糊半径):可选。定义阴影的模糊程度。该值越大,阴影的边缘就越模糊。不能为负值,如果省略,则默认为0,此时阴影将以固态颜色显示。
- spread-radius(扩展半径):可选。定义阴影的大小。正值会使阴影增大,负值会使阴影缩小。如果省略,则阴影大小将和元素一样。
- color:可选。定义阴影的颜色。如果省略,则将使用浏览器的默认阴影颜色。
- inset:可选。 通常阴影是外发的,当添加 inset 关键字时,会改变阴影从外部投射到元素内部(即内阴影)。
在react native中阴影属性为:
{ shadowColor: '#000', shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.2, shadowRadius: 1.41 }
- shadowColor: 用于设置阴影的颜色。接受一个颜色值作为输入。
- shadowOffset: 此属性接受一个对象,该对象有两个属性:
- width: 水平方向的阴影偏移量。正值向右偏移,负值向左偏移。
- height: 垂直方向的阴影偏移量。正值向下偏移,负值向上偏移。
- shadowOpacity: 用于设置阴影的透明度,其值范围在 0(完全透明)到 1(完全不透明)之间。
- shadowRadius: 这是模糊半径,决定了阴影的模糊程度。值越大,阴影边缘就越模糊。
标签:
React Native
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程