您的位置:

layuiswitch开关详细阐述

一、基本用法

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,方便用户操作和定制。