layuiswitch开关详细阐述

发布时间:2023-05-21

一、基本用法

layuiswitch 是一款基于 layui 框架的开关插件,用于实现页面中开关的效果。通过给对应元素赋值,就可以实现开关的状态切换。它有以下几个基本用法:

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch">
</div>
//js部分:
layui.use('form', function(){
    var form = layui.form;
    //监听开关状态事件
    form.on('switch', function(data){
        console.log(data.elem.checked); //开关是否开启,true或者false
        console.log(data.elem.value); //开关value值,也可以通过data.value获取
        console.log(data.elem.name); //开关name值,也可以通过data.name获取
        console.log(data.elem.title); //开关title值,也可以通过data.title获取
        console.log(data.othis); //得到美化后的DOM对象
    });  
});

通过上面的代码,可以实现一个基本的开关,当用户点击开关时,可以触发监听事件,并且获取开关的状态值以及一些其他信息。

二、开关风格

layuiswitch 提供了很多内置的风格,用户可以根据自己的需求来选择不同的风格。以下是 layuiswitch 内置的几种风格:

1、默认风格

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch">
</div>

2、颜色风格

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch" lay-text="ON|OFF" lay-skin-color="orange">
</div>
//说明:
//lay-text属性为定义切换的文字提示,如不开|已开启
//lay-skin-color属性为定义颜色。

3、原始风格

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch" lay-text="开启|关闭" lay-skin-raw>
</div>
//说明:
//lay-text属性为定义切换的文字提示,如不开|已开启
//lay-skin-raw属性为定义原始风格。

除了以上几种内置风格之外,layuiswitch 还提供了很多其他内置风格,用户可以根据具体需求自行选择。

三、自定义风格

除了使用 layuiswitch 提供的内置风格,用户还可以通过自定义 CSS 来实现完全自定义的风格。以下是一个自定义风格的示例:

//html部分:
<div class="my-switch">
    <input type="checkbox" name="switch" lay-skin="switch">
    <div class="my-switch-text">ON</div>
</div>
//CSS部分:
.my-switch{
    position: relative;
    display: inline-block;
    width: 60px;
    height: 30px;
}
.my-switch input{
    display: none;
}
.my-switch-text{
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    background-color: #009688;
    color: #fff;
    border-radius: 4px;
    cursor: pointer;
    transition: all .3s;
}
.my-switch input:checked + .my-switch-text{
    left: 30px;
}

通过以上代码,可以实现一个自定义风格的开关。通过 CSS 定义了开关的大小、颜色以及文字提示等,实现了完全自定义的效果。

四、常用方法

除了基本用法之外,layuiswitch 还提供了一些常用方法,方便用户操作开关。

1、获取开关状态

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch">
</div>
//JS部分:
layui.use('form', function(){
    var form = layui.form;
    //获取开关状态
    var switch_status = form.val('');     
});

2、设置开关状态

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch" lay-filter="test">
</div>
//JS部分:
layui.use('form', function(){
    var form = layui.form;
    //设置开关状态
    form.val('test', {
      "switch": "on"
    });    
});

3、禁用/启用开关

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch" disabled>
</div>
//JS部分:
layui.use('form', function(){
    var form = layui.form;
    //启用/禁用开关
    form.render('checkbox');
});

4、监听开关状态

//html部分:
<div>
    <input type="checkbox" name="switch" lay-skin="switch">
</div>
//JS部分:
layui.use('form', function(){
    var form = layui.form;
    //监听开关状态
    form.on('switch(test)', function(data){
        console.log(data.elem.checked); //开关是否开启,true或者false
        console.log(data.elem.value); //开关value值,也可以通过data.value获取
        console.log(data.elem.name); //开关name值,也可以通过data.name获取
        console.log(data.elem.title); //开关title值,也可以通过data.title获取
        console.log(data.othis); //得到美化后的DOM对象
    });  
});

五、总结

通过本文的详细阐述,我们全面了解了 layuiswitch 的基本用法、内置风格、自定义风格以及常用方法等方面的内容。使用 layuiswitch 可以很方便地实现页面中开关的效果,同时也提供了很多丰富的 API,方便用户操作和定制。