如何在元素离开页面时为其设置动画?
How to animate an element as it leaves a page?
我目前正在设计一个菜单,当你点击菜单按钮时,它会在右侧滑入,我希望它会在你点击 X 时滑出。
到目前为止,我已经将动画中的幻灯片放下,所以一旦呈现,就会出现此动画:
@keyframes slideInFromRight {
0% {
transform: translateX(50%);
}
100% {
transform: translateX(0);
}
}
当用户点击 X 并且该项目不再在页面上呈现时,我有什么办法可以将此动画(滑出)应用到 div:
@keyframes slideInFromRight {
0% {
transform: translateX(0);
}
100% {
transform: translateX(50%);
}
}
不确定这是否有任何相关性,但是,
对于菜单的呈现,我使用 useState() 反应挂钩来决定何时在侧边栏菜单中呈现。
你应该使用状态变量来改变类名,例如,
import React, {useState} from 'react';
function index() {
const [slideEffect, setSlideEffect] = useState(false);
const slide = () => setSlideEffect(!slideEffect);
return <div className=slideEffect?"slideRight":"slideLeft">Element</div>;
}
export default index;
您也可以使用 animate css
https://animate.style/
通过 npm 安装它,
npm install animate.css --save
然后把我写的代码改成这样
return <div className={`animate__animated ${slideEffect? "animate__fadeOutRight":"animate__fadeInRight"}`}>Element</div>;
我目前正在设计一个菜单,当你点击菜单按钮时,它会在右侧滑入,我希望它会在你点击 X 时滑出。
到目前为止,我已经将动画中的幻灯片放下,所以一旦呈现,就会出现此动画:
@keyframes slideInFromRight {
0% {
transform: translateX(50%);
}
100% {
transform: translateX(0);
}
}
当用户点击 X 并且该项目不再在页面上呈现时,我有什么办法可以将此动画(滑出)应用到 div:
@keyframes slideInFromRight {
0% {
transform: translateX(0);
}
100% {
transform: translateX(50%);
}
}
不确定这是否有任何相关性,但是, 对于菜单的呈现,我使用 useState() 反应挂钩来决定何时在侧边栏菜单中呈现。
你应该使用状态变量来改变类名,例如,
import React, {useState} from 'react';
function index() {
const [slideEffect, setSlideEffect] = useState(false);
const slide = () => setSlideEffect(!slideEffect);
return <div className=slideEffect?"slideRight":"slideLeft">Element</div>;
}
export default index;
您也可以使用 animate css
https://animate.style/
通过 npm 安装它,
npm install animate.css --save
然后把我写的代码改成这样
return <div className={`animate__animated ${slideEffect? "animate__fadeOutRight":"animate__fadeInRight"}`}>Element</div>;