React and CSS3 implement WeChat red envelope opening animation
This time I will bring you React and CSS3 to implement WeChat red envelope opening animation. What are the precautions for React and CSS3 to implement WeChat red envelope opening animation. The following is a practical case, let’s take a look.
WeChat red envelopes have set off a series of marketing crazes. I believe everyone is familiar with this form of red envelopes. In the spirit of entertainment first, here we use React to simply implement the animation effect of opening red envelopes for everyone to join together. Exchange and study
Use CSS3 to draw red envelopes
.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); }
<p class='redpack'> <!-- 红包的顶部盖子 --> <p class="topcontent"></p> <!-- 拆红包的按钮 --> <p id="redpack-open"></p> </p>
The effect is as shown in the figure:
Use React to distinguish different state transitions
If implemented with React.js, the red envelope is mainly controlled by judging the state. Now it is Are you waiting to be disassembled or have you already disassembled it? The specific code is as follows
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 ( <p className='redpack-container' id='redpack-container'> <p className='redpack'> <p className='topcontent'> <p id='redpack-opened'> <p className='redpack-avatar'> <img src='http://placehold.it/80x80' alt='头像' width='80' height='80'/> </p> </p> <h2 style={{marginTop: 80, color: 'white'}}>奖励</h2> <span className='redpack-text'>点击下方按钮领取红包</span> <p className='redpack-description white-text'>恭喜发财 大吉大利</p> </p> <p id='redpack-open' className={this.state.animation ? 'rotate' : ''} onClick={this.openRedPacket.bind(this)} > <span>拆红包</span> </p> </p> </p> ); } else if (bonus == 0) { // 谢谢参与 return ( <p className='redpack-container' id='redpack-container'> <p className='redpack'> <p className='topcontent-open'> <p className='redpack-avatar'> <span id='close'></span> </p> <h1 style={{marginTop: 180, color: 'white'}}> 谢谢参与 </h1> <span className='redpack-text'>多多参与的奖励的机会更多哦</span> <br/> <a onClick={this._toWallet.bind(this)} style={{cursor:'pointer',textDecoration: 'underline', color: 'white'}}> 去我的账户查看 </a> </p> <p id='redpack-opened'> <p className='redpack-avatar'> <img src='http://placehold.it/80x80' alt='头像' width='80' height='80'/> </p> </p> </p> </p> ); } else { // 显示奖励金额 return ( <p className='redpack-container' id='redpack-container'> <p className='redpack'> <p className='topcontent-open'> <p className='redpack-avatar'> <span id='close'></span> </p> <h1 className='white-text' style={{marginTop: 180}}> {bonus.toFixed(2)} </h1> <span className='redpack-text'>奖励积分已经存入您的账户</span> <a className='btn-flat white-text' onClick={this._toWallet.bind(this)} style={{textDecoration: 'underline'}}> 去我的账户查看积分 </a> </p> <p id='redpack-opened'> <p className='redpack-avatar'> <img src='http://placehold.it/80x80' alt='头像' width='80' height='80'/> </p> </p> </p> </p> ); } } 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;
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!
Recommended reading:
Detailed explanation of the use of background-attachment in CSS
Bootstrap implementation price list
How does CSS handle the browser’s default style
The above is the detailed content of React and CSS3 implement WeChat red envelope opening animation. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

React is the preferred tool for building interactive front-end experiences. 1) React simplifies UI development through componentization and virtual DOM. 2) Components are divided into function components and class components. Function components are simpler and class components provide more life cycle methods. 3) The working principle of React relies on virtual DOM and reconciliation algorithm to improve performance. 4) State management uses useState or this.state, and life cycle methods such as componentDidMount are used for specific logic. 5) Basic usage includes creating components and managing state, and advanced usage involves custom hooks and performance optimization. 6) Common errors include improper status updates and performance issues, debugging skills include using ReactDevTools and Excellent

The React ecosystem includes state management libraries (such as Redux), routing libraries (such as ReactRouter), UI component libraries (such as Material-UI), testing tools (such as Jest), and building tools (such as Webpack). These tools work together to help developers develop and maintain applications efficiently, improve code quality and development efficiency.

The roles of HTML, CSS and JavaScript in web development are: 1. HTML defines the web page structure, 2. CSS controls the web page style, and 3. JavaScript adds dynamic behavior. Together, they build the framework, aesthetics and interactivity of modern websites.

Netflixusesacustomframeworkcalled"Gibbon"builtonReact,notReactorVuedirectly.1)TeamExperience:Choosebasedonfamiliarity.2)ProjectComplexity:Vueforsimplerprojects,Reactforcomplexones.3)CustomizationNeeds:Reactoffersmoreflexibility.4)Ecosystema

React is a front-end framework for building user interfaces; a back-end framework is used to build server-side applications. React provides componentized and efficient UI updates, and the backend framework provides a complete backend service solution. When choosing a technology stack, project requirements, team skills, and scalability should be considered.

Netflix uses React as its front-end framework. 1) React's componentized development model and strong ecosystem are the main reasons why Netflix chose it. 2) Through componentization, Netflix splits complex interfaces into manageable chunks such as video players, recommendation lists and user comments. 3) React's virtual DOM and component life cycle optimizes rendering efficiency and user interaction management.

The advantages of React are its flexibility and efficiency, which are reflected in: 1) Component-based design improves code reusability; 2) Virtual DOM technology optimizes performance, especially when handling large amounts of data updates; 3) The rich ecosystem provides a large number of third-party libraries and tools. By understanding how React works and uses examples, you can master its core concepts and best practices to build an efficient, maintainable user interface.
