[英]add transition time to onclick event react
我正在尝试向onClick
事件添加过渡时间。 HomeCard 元素以 600px 的宽度开始,并且随着按钮的onClick
事件,它正确地变为 100% 宽度。 唯一的问题是我试图将转换延迟 2 秒,但它不起作用。 在这种情况下,添加过渡时间的正确方法是什么?
function App() {
const [cardWidth, setCardWidth] = useState("600px");
const setStyle = (cardWidth) => {
setCardWidth(cardWidth);
}
const HomeCard = styled.div`
margin: 0 auto;
background-color: #fff;
text-align: center;
border-radius: 12px;
width: ${cardWidth};
transition: width 2s;
height: 600px;
`
return (
<Wrapper>
<LogoWrapper/>
<HomeCard>
<Header>Text</Header>
<CardText>Amet minim mollit non deserunt ullamco est sit aliqua dolor do amet sint</CardText>
<Button onClick={() => setStyle("100%")}>See the animation</Button>
</HomeCard>
</Wrapper>
);
}
export default App;
您可以设置transition-delay
CSS 属性以指定在开始转换之前等待的持续时间。
或短transition: <property> || <duration> || <timing-function> || <delay> [, ...];
transition: <property> || <duration> || <timing-function> || <delay> [, ...];
有关 CSS 转换的更多信息
我建议为您的 HomeCard 元素创建类
.home-card{
width: 600px;
transition: width 2s 2s;
}
.wide{
width: 100%;
transition: width 2s 2s;
}
并有条件地在className
中添加一个类名
function App() {
const [isWide, setIsWide] = useState(false);
const toggleAnimation = () => {
setIsWide(prev => !prev);
}
return (
<div className={isWide ? "home-card wide" : "home-card"}>
<button onClick={toggleAnimation}>See the animation</button>
</div>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.