H5 switch开关

<input type="checkbox" id="switch" class="switch" :checked="fun.value=='true'">

css样式:

/* Switch开关样式 */
/* 必须是input为 checkbox class 添加 switch 才能实现以下效果 */
input[type='checkbox'].switch{
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  position: relative;
  width: 40px;
  height: 20px;
  background: #ccc;
  border-radius: 10px;
  transition: border-color .3s, background-color .3s;
}

input[type='checkbox'].switch::after {
  content: '';
  display: inline-block;
  width: 1rem;
  height:1rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0,0,2px,#999;
  transition:.4s;
  top: 1px;
  position: absolute;
  left: 2px;
}

input[type='checkbox'].switch:checked {
  background: rgb(19, 206, 102);
}
/* 当input[type=checkbox]被选中时:伪元素显示下面样式 位置发生变化 */
input[type='checkbox'].switch:checked::after {
  content: '';
  position: absolute;
  left: 55%;
  top: 1px;
}

列表:

    /*list-style-type: none; 去掉无序列表的圆点*/    
    <ul style="list-style-type: none; padding: 0; margin-top: 10px; width: 100%;">
        /*display: flex; flex-wrap: wrap; 使控件不超出屏幕*/
        <li v-for="(fun, index) in attributes" :key="index" style="display: flex; flex-wrap: wrap;">

          /*display: flex; 子元素横向排列*/  
          <div style="height: 85px; border: 1px solid #2c3e50; width: 100%; border-radius:10px; margin-top: 10px; display: flex; padding-left: 15px">

            <img :src="fun.value == 'true'?fun.activeIcon:fun.icon" width="20px" height="20px" style="align-self: center">

            <div style="align-self: center; margin-left: 6px;">{{fun.name}}</div>

            <div style="align-self: center; position: absolute; right: 20px" @click="controlFun(index)">
               /*v-else-if 用v-if控制switch状态,状态改变时有时改变不了*/  
              <input type="checkbox" class="switch" :checked="fun.value=='true'">
<!--              <input type="checkbox" class="switch" v-else-if="fun.value =='false'">-->
            </div>

          </div>

        </li>
      </ul>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值