如何在 React 中将元素旋转 180 度?
How to rotate an element 180 in react?
如何根据状态变量 show
将 <CaretUpFill/>
图标旋转为上下颠倒,但处于过渡状态?我在 _rafce
。 (反应箭头函数组件)
目前,我正在渲染另一个图标<CaretDownFill/>
,但看起来并不流畅。
我想让箭头看起来像这样:
<div className="col-2 d-flex align-items-center">
<small>{show ? <CaretUpFill /> : <CaretDownFill />}</small>
</div>
使用 css 属性:
transform: rotate(180deg)
我看到您创建了两个元素 - <CaretUpFill />
和 <CaretDownFill />
。
您现在所做的基本上是卸载 <CaretUpFill />
并安装 <CaretDownFill />
组件(反之亦然),但据我所知,不可能在两个单独的组件之间创建动画。
因此,我建议只使用一个组件,并使用上面的 css 属性 添加动画。
您可以使用 style prop to add a CSS transform to rotate the icon with a CSS transition 设置动画过渡。
const style = {
transform: show ? 'rotate(180deg)' : '',
transition: 'transform 150ms ease', // smooth transition
}
<div className="col-2 d-flex align-items-center">
<small><CaretUpFill style={style}/></small>
</div>
//if the icon doesn't have access to style props you can add it to the <small> element
<div className="col-2 d-flex align-items-center">
<small style={style}><CaretUpFill /></small>
</div>
您也可以使用像 Framer Motion 这样的第三方库来为您的组件设置动画 - 但它对您的需求来说太过分了。
我推荐你 framer-motion 库
您可以旋转元素,并进行很多操作。
css
和 framer motion
有什么区别?运动其 js 组件,工作正常
这里是example
您可以在 CSS 中使用“旋转”功能,这是最简单的方法:
style={{ transform: 'rotate(180deg)' }}
如何根据状态变量 show
将 <CaretUpFill/>
图标旋转为上下颠倒,但处于过渡状态?我在 _rafce
。 (反应箭头函数组件)
目前,我正在渲染另一个图标<CaretDownFill/>
,但看起来并不流畅。
我想让箭头看起来像这样:
<div className="col-2 d-flex align-items-center">
<small>{show ? <CaretUpFill /> : <CaretDownFill />}</small>
</div>
使用 css 属性:
transform: rotate(180deg)
我看到您创建了两个元素 - <CaretUpFill />
和 <CaretDownFill />
。
您现在所做的基本上是卸载 <CaretUpFill />
并安装 <CaretDownFill />
组件(反之亦然),但据我所知,不可能在两个单独的组件之间创建动画。
因此,我建议只使用一个组件,并使用上面的 css 属性 添加动画。
您可以使用 style prop to add a CSS transform to rotate the icon with a CSS transition 设置动画过渡。
const style = {
transform: show ? 'rotate(180deg)' : '',
transition: 'transform 150ms ease', // smooth transition
}
<div className="col-2 d-flex align-items-center">
<small><CaretUpFill style={style}/></small>
</div>
//if the icon doesn't have access to style props you can add it to the <small> element
<div className="col-2 d-flex align-items-center">
<small style={style}><CaretUpFill /></small>
</div>
您也可以使用像 Framer Motion 这样的第三方库来为您的组件设置动画 - 但它对您的需求来说太过分了。
我推荐你 framer-motion 库
您可以旋转元素,并进行很多操作。
css
和 framer motion
有什么区别?运动其 js 组件,工作正常
这里是example
您可以在 CSS 中使用“旋转”功能,这是最简单的方法:
style={{ transform: 'rotate(180deg)' }}