【微信小程序】写一个能自定义尺寸、样式的switch
小程序原生的switch不能灵活的修改宽高、样式,很不方便,我这边参考?WeUI?的开关,写了一个可以自定义尺寸样式的switch组件。 直接上代码:?https://gitee.com/piscdong/we... 效果如下图,可以自定义宽高,可以做成方角的 代码分析这个switch主要的难点就是点击后背景颜色变换的动画,这里用到了css的transition、transform两个属性来实现动画,以及::before和::after两个伪元素。 wxml基本结构为: <view class="switch">
<view></view>
</view>
父级view是整个switch容器,会用到::before做背景色切换动画,::after做禁用时的灰色遮罩。内部的一个view是来回切换的白点。未选中时默认class是switch,选中时增加一个class:switch_checked。 选中状态到未选中状态背景有一个从中间变大到全部的白色动画,所以需要给父级view设置一个颜色作为背景色。 .switch {
...
background: #00c000;
position: relative;
}
未选中时::before覆盖整个容器,选中时::before设置? ;
position: absolute;
top: 0;
left: right: bottom: border-radius: 9999rpx;
#fff;
transition: all 0.35s cubic-bezier(0.45,1,0.4,1);
}
.switch_checkedtransform: scale(0);
}
来回移动的白点,未选中时通过? 关于“::” |