react中使用动画
1. css原生动画的使用
import React, { useState } from "react"
import "./index.css"
function App() {
const [show, setShow] = useState(true)
const toogle = () => {
setShow(!show)
}
return (
<div>
<div className={show ? "show" : "hide"}>hello,world</div>
<button className="btn" onClick={toogle}>
toogle
</button>
</div>
)
}
export default App
样式
.show {
opacity:;
transition: all 1s;
}
.hide {
opacity:;
transition: all 1s;
}
2.使用keyframes动画
.show {
animation: show-item 1s ease-in forwards; // forwards 表示保存动画最后一帧的状态
}
.hide {
animation: hide-item 1s ease-in forwards;
}
@keyframes show-item {
0% {
opacity:;
}
50% {
opacity: 0.5;
color: pink;
}
100% {
opacity:;
color: green;
}
}
@keyframes hide-item {
0% {
opacity:;
}
50% {
opacity: 0.5;
}
100% {
opacity:;
}
}
3.使用 react-transition-group实现动画
.fade-enter {
opacity:;
}
.fade-enter-active { // 在最后一帧时会被清除
opacity:;
transition: all 1s ease-in;
}
.fade-enter-done { // 这是必须的 保证最后一帧动画的状态
opacity:;
}
.fade-exit {
opacity:;
}
.fade-exit-active {
opacity:;
transition: all 1s ease-in;
}
.fade-exit-done {
opacity:;
}
<CSSTransition in={show} classNames="fade" timeout={10000} unmountOnExit> unmountOnExit 表示隐藏的时候卸载该组件
<div>hello,world</div>
</CSSTransition>
刷新页面没有动画 需要加上 appear={true}
Transition / CSSTransition / TransitionGroup
Transition 相比较于 CSSTransition更加底层
4.列表动画
<TransitionGroup>
{
this.state.list.map((item,index)=>{
return (<CSSTransition key={index}
appear = {true}
timeout = {1000}
unmountOnExit
classNames='fade'
onEntered={(el)=>{el.style.color='blue'}}>
<div>{item}</div>
</CSSTransition>);
})
}
</TransitionGroup>
<button onClick={ this.handlerClick }>toogle</button>
react中使用动画的更多相关文章
- react中如何使用动画效果
在react中想要加入动画效果 需要引入 import {CSSTransitionGroup} from 'react-transition-group' //加入react 动画包 import ...
- Immutable 详解及 React 中实践
本文转自:https://github.com/camsong/blog/issues/3 Shared mutable state is the root of all evil(共享的可变状态是万 ...
- React中使用CSSTransitionGroup插件实现轮播图
动画效果,是一个页面上必不可少的功能,学习一个新的东西,当然就要学习,如何用新的东西,用它的方法去实现以前的东西啦.今天呢,我就在这里介绍一个试用react-addons-css-transition ...
- react中input自动聚焦问题
input自动聚焦问题 在react中可以使用refs解决这个问题,首先看一下refs的使用场景: (1)处理焦点.文本选择或媒体控制. (2)触发强制动画. (3)集成第三方 DOM 库. 使用re ...
- 简谈react中的虚拟DOM
相信你在看到此篇前也翻阅大量的对DOM的文章讲解和介绍 react中的虚拟DOM 此篇我尽量说人话(大白话),不然想必你在看到别的大神的文章早就懂了. 不说废话了,上干货. 1.首先简单对Html中的 ...
- 【React】377- 实现 React 中的状态自动保存
点击上方"前端自习课"关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉 ...
- Three.js 快速上手以及在 React 中运用[转]
https://juejin.im/post/5ca22692f265da30a53d6656 github 的地址 欢迎 star! 之前项目中用到了 3D 模型演示的问题,整理了一下之前学习总结以 ...
- React中的合成事件
React中的合成事件 React自己实现了一套高效的事件注册.存储.分发和重用逻辑,在DOM事件体系基础上做了很大改进,减少了内存消耗,简化了事件逻辑,并最大程度地解决了IE等浏览器的不兼容问题. ...
- React Transition css动画案例解析
实现React Transition Css动画效果 首先在项目工程中引入react-transition-group: npm install react-transition-group --sa ...
随机推荐
- linux 安装程序的方式
linux 安装程序的方式 通用二进制格式(绿色软件,打开即用) 软件包管理器(rpm) 软件包管理器的前端工具(yum) 源代码编译
- Codeforces Round #599 (Div. 2) B2. Character Swap (Hard Version) 构造
B2. Character Swap (Hard Version) This problem is different from the easy version. In this version U ...
- mac--“-bash: brew: command not found”,怎么解决?
报错 “-bash: brew: command not found” 执行下面命令,安装HomeBrew ruby -e "$(curl -fsSL https://raw.githubu ...
- 将tf-faster-rcnn检测结果画在一张图像内
https://blog.csdn.net/weixin_42111393/article/details/82940681
- 【转】Oracle重置序列(不删除重建方式)
Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequen ...
- laravel中的表单请求类型和CSRF防护(六)
laravel中为我们提供了绑定不同http请求类型的函数. Route::get('/test', function () {}); Route::post('/test', function () ...
- zookeeper — 实现分布式锁
一.前言 在之前的文章中介绍过分布式锁的特点和利用Redis实现简单的分布式锁.但是分布式锁的实现还有很多其他方式,但是万变不离其宗,始终遵循一个特点:同一时刻只能有一个操作获取.这篇文章主要介绍如何 ...
- 计时 答题 demo
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Java自学-I/O 数据流
Java 数据流DataInputStream ,DataOutputStream DataInputStream 数据输入流 DataOutputStream 数据输出流 步骤 1 : 直接进行字符 ...
- 1G内存VPS安装 mysql5.6 经常挂
背景介绍 去年3月份的时候参加了腾讯云主机活动,5年362,非常优惠.当时的想法是买来可以瞎整一波,虽然配置不高,但是搞点事情也够用. 配置如下,上海机房 1 核 1 GB 1 Mbps 系统盘:普通 ...