【发布时间】:2021-12-11 14:23:54
【问题描述】:
我正在尝试创建一个移动顺畅的简单反应开关组件
这是反应代码
export function Switch({callBackOn, callBackOff}){
const [switchState, setState] = useState("");
function callback(){
if(switchState == ""){
setState("switch-on")
}
else{
setState("")
}
}
return(
<div onClick={callback} className={"switch " + switchState}>
<div></div>
</div>
)
}
这是我的css
.switch {
background-color: red;
height: 5rem;
width: 10rem;
border-radius: 2.5rem;
border: 5px solid;
transition: 1s;
position: relative;
}
.switch-on {
background-color: green !important;
}
.switch div {
height: 5rem;
width: 5rem;
border-radius: 2.5rem;
background-color: white;
transition: margin-left 1s;
}
.switch-on div {
margin-left: auto;
}
背景颜色变化过渡有效,但边距变化根本没有动画效果。我也尝试过使用关键帧和动画属性,但也没有用
【问题讨论】:
标签: javascript html css reactjs css-animations