微信小程序自定義switch

微信小程序自帶的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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章