您的位置:首页 > 科技 > IT业 > react native中内容占位效果

react native中内容占位效果

2024/12/23 15:17:00 来源:https://blog.csdn.net/qq_37117408/article/details/139446265  浏览:    关键词:react native中内容占位效果

react native中内容占位效果

    • 效果实例图
    • 实例代码skeleton.jsx

效果实例图

在这里插入图片描述

实例代码skeleton.jsx

import React, { useEffect, useRef } from "react";
import { Animated, StyleSheet, View } from "react-native";
import { pxToPd } from "../../../common/js/device";const Skeleton = ({ }) => {const progressBarWidth = useRef(new Animated.Value(0)).current;const animationFun = () => {Animated.timing(progressBarWidth, {toValue: 1, // 目标值duration: 1000, // 动画持续时间(毫秒)useNativeDriver: false // 必须设置为 false,因为布局动画不能使用原生驱动}).start(({ finished }) => {if (finished) {progressBarWidth.setValue(0); // 重置为初始值animationFun(); // 重新触发动画}});;}const widthValue = progressBarWidth.interpolate({inputRange: [0, 1],outputRange: ['0%', '100%']});useEffect(() => {animationFun();return () => { }}, []);return (<><View style={styles.skeleton}><View style={styles.skeletonLogo}><Animated.View style={[styles.progress, { width: widthValue }]} /></View><View style={styles.skeletonName}><Animated.View style={[styles.progress, { width: widthValue }]} /></View><View style={styles.skeletonBtn}><Animated.View style={[styles.progress, { width: widthValue }]} /></View></View></>)
}const styles = StyleSheet.create({skeleton: {width: '100%',height: pxToPd(200),position: "relative",backgroundColor: "#fff",marginBottom: pxToPd(16)},skeletonLogo: {height: pxToPd(155),width: pxToPd(155),backgroundColor: '#f2f2f2',borderRadius: pxToPd(5),overflow: 'hidden',position: 'absolute',left: '3.2%',top: pxToPd(22)},skeletonName: {height: pxToPd(60),width: pxToPd(319),backgroundColor: '#f2f2f2',overflow: 'hidden',position: 'absolute',left: '29%',top: pxToPd(70)},skeletonBtn: {height: pxToPd(64),width: pxToPd(152),backgroundColor: '#f2f2f2',borderRadius: pxToPd(32),overflow: 'hidden',position: 'absolute',right: '3.2%',top: pxToPd(68)},progress: {height: '100%',backgroundColor: 'rgba(255, 255, 255, 0.3)'}
})export default Skeleton

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com