📅  最后修改于: 2023-12-03 15:25:33.370000             🧑  作者: Mango
这是一个用 JavaScript 实现的开关控件,可以通过单击或拨动实现开关的切换。在这个开关控件中,我们可以自定义开关的样式、默认状态和触发事件等。
npm install switch-control
import SwitchControl from 'switch-control';
const switchControl = new SwitchControl({
el: document.getElementById('switch'),
// 其他选项
});
// 启用
switchControl.enable();
// 禁用
switchControl.disable();
| 选项 | 类型 | 默认值 | 说明 | | ------------- | -------- | ------ | --------------------- | | el | Element | | 开关控件的父元素 | | onText | String | ON | 开关打开时的文本 | | offText | String | OFF | 开关关闭时的文本 | | width | Number | 100 | 开关的宽度 | | height | Number | 40 | 开关的高度 | | borderRadius | Number | 20 | 圆角半径 | | borderWidth | Number | 2 | 边框宽度 | | color | String | #4d4d4d | 开关背景颜色 | | textColor | String | #fff | 开关文本颜色 | | activeColor | String | #5cb85c | 开关打开时的背景颜色 | | inactiveColor | String | #d9534f | 开关关闭时的背景颜色 |
| 方法名 | 说明 | | ------ | -------------------- | | enable | 启用开关控件 | | disable | 禁用开关控件 | | toggle | 切换开关状态 | | on | 注册状态打开的事件 | | off | 注册状态关闭的事件 | | change | 注册状态改变的事件 |
| 事件名 | 触发时刻 | 回调参数 | | ---------- | -------------------------------------------------- | -------- | | turnon | 开关打开时触发 | 无 | | turnoff | 开关关闭时触发 | 无 | | changestate | 开关状态改变时触发,参数为当前状态(on 或 off) | 当前状态 |
<div id="switch"></div>
import SwitchControl from 'switch-control';
const switchControl = new SwitchControl({
el: document.getElementById('switch'),
onText: '启用',
offText: '禁用',
width: 120,
height: 36,
borderRadius: 18,
borderWidth: 2,
color: '#e8e8e8',
textColor: '#333',
activeColor: '#5cb85c',
inactiveColor: '#d9534f',
});
switchControl.on('turnon', () => {
console.log('开关打开了');
});
switchControl.on('turnoff', () => {
console.log('开关关闭了');
});
switchControl.on('changestate', (state) => {
console.log(`开关状态改变了,当前状态为 ${state}`);
});
此开关控件仅用于学习交流,欢迎提出意见和建议。