在这里,我想创建一个切换开关滑块按钮。我已经创建了它,但是当我单击它时,“它的背景将是蓝色的,当我单击关闭时,”它的背景将是蓝色的,但这里的文本被隐藏和关闭并显示。我想要像这张照片一样:
每次我只将背景颜色切换为蓝色时,我想连续显示打开和关闭按钮,如下图所示:
因此,当我单击切换背景颜色时,会通过一些过渡从一种颜色切换到另一种颜色,下面给出如何使用代码实现此目的。
import React, { useState } from 'react';
import './styles.css';
const App = () => {
const [isOn, setIsOn] = useState(false);
const toggleSwitch = () => {
setIsOn(!isOn);
};
return (<>
<div className="toggle-container">
<button
className={`toggle-button ${isOn ? 'on' : 'off'}`}
onClick={toggleSwitch}
style={{color:isOn?'blue':'white',textAlign:isOn?'left':'right'}}
>
{isOn ? 'On' : 'Off'}
</button>
</div>
</>
);
};
export default App;
css 如下
.toggle-button {
border:2px solid blue;
outline: none;
cursor: pointer;
width: 100px;
padding: 10px 20px;
border-radius: 25px;
font-weight: bold;
font-size: 16px;
transition: background-color 0.3s;
position: relative;
overflow: hidden;
}
.toggle-button:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: blue;
transition: left 0.3s, background-color 0.3s;
}
.toggle-button.on:before {
left: 50%;
background-color: white;
}
.toggle-button.off {
background-color: blue;
}
.toggle-button.on {
background-color: white;
}
.toggle-button.on.off:before {
background-color: blue;
}
.toggle-button.off.on:before {
background-color: white;
}
我想我明白你想做什么,但我认为这应该用不同的方法来完成,像这样的东西怎么样,底部有一个 div 指示所选的选项。
这只是一个示例,您必须应用外部逻辑和事件。
祝你好运!
https://codesandbox.io/s/weathered-brook-yzkv2n?file=/src/App.js 反应代码:
CSS:
JSX: