微信小程序自带的switch,可以改变大小,颜色,但是是有局限性的,所以好多时候都需要自己去写一个。
修改微信小程序自带对的switch
/*swtich整体大小及背景色*/
.wx-switch-input{
width:82rpx !important;
height:36rpx !important;
background: red !important;
border: red !important;
}
/*关闭状态的样式*/
.wx-switch-input::before{
width:80rpx !important;
height: 36rpx !important;
}
/*开启状态的样式*/
.wx-switch-input::after{
width: 40rpx !important;
height: 36rpx !important;
}
自定义switch
<view class="switch {{isOpen? 'toggle-on' : 'toggle-off'}}" style="background-color:{{anonymousSwitch ?'#00CED0' : '#ddd'}}" bindtap="selSwitch"></view>
Page({
data:{
isOpen:false,//默认关闭
},
onLoad:function(){
},
selSwitch(){
this.data.isOpen=!this.data.isOpen;
this.setData({
isOpen:this.data.isOpen;
})
}
})
.switch {
position: relative;
overflow: hidden;
width: 100rpx;
height: 50rpx;
border-radius: 16px;
}
.switch::before {
content: "";
position: absolute;
background-color: #D1D3D7;
border-radius: 15px;
transition: all ease-out 0.3s;
-webkit-transition: all 0.3s;
}
.switch::after {
position: absolute;
display: inline-block;
content: "";
margin-top: 6rpx;
height: 36rpx;
width: 36rpx;
border-radius: 50%;
background-color: #fff;
transition: left 0.2s ease-out;
-webkit-transition: left ease-out 0.2s;
}
.toggle-off {
background-color: #e5e5e5;
}
.toggle-off::before {
width: 50px;
height: 30px;
left: 1px;
top: 1px;
}
.toggle-off::after {
left: 3px;
box-shadow: 1px 2px 4px #aaa;
}
.toggle-on::before {
width: 0px;
height: 0px;
left: 30px;
top: 15px;
}
.toggle-on:after {
left: 30px;
}