微信小程序switch组件使用详解


Posted in Javascript onJanuary 31, 2018

本文实例为大家分享了微信小程序switch组件的实现代码,供大家参考,具体内容如下

效果图

微信小程序switch组件使用详解

HTML

<div class="switch-list">
 <span class="fui-fr">红色switch组件</span>
 <input class="fui-switch" style="color:rgb(255, 0, 0);" type="checkbox" checked>
</div>
<div class="switch-list">
 <span class="fui-fr">绿色switch组件</span>
 <input class="fui-switch" style="color:rgb(76, 216, 100);" type="checkbox" checked>
</div>
<div class="switch-list">
 <span class="fui-fr">绿色禁用switch组件</span>
 <input class="fui-switch" style="color:rgb(76, 216, 100);" type="checkbox" checked disabled>
</div>
<div class="switch-list">
 <span class="fui-fr">蓝色switch组件---开</span> 
 <input class="fui-switch" style="color:blue" type="checkbox" checked>
</div>
<div class="switch-list">
 <span class="fui-fr">蓝色switch组件---关</span> 
 <input class="fui-switch" style="color:blue" type="checkbox">
</div>

CSS

.switch-list{
 padding: .5rem;
}
.fui-switch{
 position: relative;
 width: .87rem;
 height: .5rem;
 z-index: 10;
 display: inline-block;
 outline: medium;
 border: 1px solid #dfdfdf;
 border-radius: .25rem;
 background-color: #dfdfdf;
 -webkit-appearance: none;
 -moz-appearance: none;
 vertical-align: middle;
}
.fui-switch:checked{
 border-color: currentColor;
 background-color: currentColor;
}
.fui-switch::after,.fui-switch::before{
 content: "";
 position: absolute;
 height: .44rem;
 top: 0;
 left: 0;
 border-radius: .25rem;
 -webkit-transition: -webkit-transform .3s;
 transition: -webkit-transform .3s;
 transition: transform .3s;
 transition: transform .3s,-webkit-transform .3s;
}
.fui-switch:before {
 width: .84rem;
 background-color: #fdfdfd;
}
.fui-switch:checked:before {
 -webkit-transform: scale(0);
 transform: scale(0);
}
.fui-switch:after {
 width: .44rem;
 background-color: #fff;
 box-shadow: 0 1px 3px rgba(0,0,0,.4);
}
.fui-switch:checked:after {
 -webkit-transform: translateX(.4rem);
 transform: translateX(.4rem);
}
.fui-switch[disabled] {
 opacity: .5;
}
.fui-fr{font-size: .3rem;vertical-align: middle;}

实现rem的JS

(function(win,factory){
 factory(win);
 window.addEventListener('resize',function(){factory(win)},false);
}(window,function(win){
 var width = document.documentElement.clientWidth;
 width = width > 750 ? 750 : width;
 document.documentElement.style.fontSize = width / 7.5 + 'px';
}));

注意

此处 1rem 在 750 的 psd 设计图代表 100px ;
switch 的切换动画是通过 CSS3 的 transition 属性实现;
主要是控制 switch 的 after 的移动,以及 before 的放大缩小动画。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript select下拉框操作常用方法
Nov 09 Javascript
js 绑定带参数的事件以及手动触发事件
Apr 27 Javascript
js时间日期格式化封装函数
Dec 02 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
js 获取本地文件及目录的方法(推荐)
Nov 10 Javascript
详解js中call与apply关键字的作用
Nov 21 Javascript
Node.js之网络通讯模块实现浅析
Apr 01 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
Jul 31 Javascript
微信小程序开发之自定义tabBar的实现
Sep 06 Javascript
关于Vue中axios的封装实例详解
Oct 20 Javascript
vue项目中导入swiper插件的方法
Jan 30 #Javascript
微信小程序实现手势图案锁屏功能
Jan 30 #Javascript
简单理解Vue中的nextTick方法
Jan 30 #Javascript
Vue组件中slot的用法
Jan 30 #Javascript
vue初尝试--项目结构(推荐)
Jan 30 #Javascript
JS实现的邮箱提示补全效果示例
Jan 30 #Javascript
JS实现的抛物线运动效果示例
Jan 30 #Javascript
You might like
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python的re正则表达式实例代码
2018/01/24 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
初中升旗仪式演讲稿
2014/05/08 职场文书
市场营销计划书
2015/01/17 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
宪法宣传标语100条
2019/10/15 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Oracle 死锁的检测查询及处理
2021/09/25 Oracle