博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用React加CSS3实现微信拆红包动画
阅读量:6227 次
发布时间:2019-06-21

本文共 3629 字,大约阅读时间需要 12 分钟。

微信红包曾经引爆过一系列的营销热潮,相信大家对于这种红包形式并不陌生,这里本着娱乐至上的精神用React简单地实现了拆红包的动画效果,供大家一起交流学习

项目源码地址:

用CSS3绘制红包

.redpack {  height: 450px;  background: #A5423A;  width: 300px;  left: 0;  top: 0;  border-radius: 10px;  margin: 0 auto;}.topcontent {    height: 300px;    border: 1px solid #BD503A;    background-color: #BD503A;    border-radius: 10px 10px 50% 50% / 10px 10px 15% 15%;    box-shadow: 0px 4px 0px -1px rgba(0,0,0,0.2);}#redpack-open {    width: 100px;    height: 100px;    border: 1px solid #FFA73A;    background-color: #FFA73A;    border-radius: 50%;    color: #fff;    font-size: 20px;    display: inline-block;    margin-top: -50px;    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.2);}

在线Demo演示:

图片描述

用React来区分不同的状态的转换

用React.js来实现的话,主要通过判断state来控制红包现在是等待拆开还是已经拆开过,具体的代码如下

import React from 'react';class ReadPacket extends React.Component {    constructor(props) {        super(props);        this.state = {            animation: false,            status: 0  // 0: 等待拆开 1: 拆开后        };    }    render() {        var bonus = this.props.thanks ? 0 : parseFloat(this.props.surveyInfo.bonus);        if(this.state.status == 0) {            return (                
头像

奖励

点击下方按钮领取红包
恭喜发财 大吉大利
拆红包
); } else if (bonus == 0) { // 谢谢参与 return (

谢谢参与

多多参与的奖励的机会更多哦
去我的账户查看
头像
); } else { // 显示奖励金额 return (

{bonus.toFixed(2)}

奖励积分已经存入您的账户
去我的账户查看积分
头像
); } } stopAnimation() { this.setState({animation: false}); } showResult() { this.setState({status: 1}); } openRedPacket() { this.setState({animation: true}); setTimeout(this.stopAnimation.bind(this), 3000); setTimeout(this.showResult.bind(this), 4000); } _toWallet() { // 跳转到钱包 window.location.hash = '/wallet'; }}export default ReadPacket;

转载请注明原文链接:

你可能感兴趣的文章
js 格式化日期 ("/Date(1400046388387)/")
查看>>
Caffe CNN特征可视化
查看>>
Python find() 方法
查看>>
java实现二叉树的构建以及3种遍历方法
查看>>
构造MaxTree
查看>>
工厂模式
查看>>
贝叶斯机器学习路线图
查看>>
如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构
查看>>
browser-sync 服务器使用
查看>>
IntelliJ IDEA常用的快捷键(代码提示/注释代码/加入类注释和方法注释Javadoc)
查看>>
SpringBoot整合SpringKafka实现消费者史上最简代码实现
查看>>
Ubuntu创建新用户并增加管理员权限 删除某个用户
查看>>
java单例模式实例
查看>>
人工智能时代: 从隐私到控制
查看>>
【Spark】Spark-性能调优-系列文章
查看>>
Day19 网络编程
查看>>
Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
查看>>
.NET平台MongoDB下使用JobStore存储Quartz.Net的Job,Trigger数据
查看>>
Java多线程编程—锁优化
查看>>
python文本 字符与字符值转换
查看>>