MIUI选项框开关样式模拟

有IOS的开关模拟,当然也有MIUI的开关模拟

看到设置选项里面的开关样式,突发奇想地来试试

  

最终效果如图:

实现过程

1. 选项框checkbox

模拟开关当然需要一个选项框,这里用到了复选框checkbox

2. 理解开关的过程

点击开关按钮,则开启或关闭。原生的checkbox无法做到图示的效果,所以就需要额外的元素来表示图中的开关

而我们又要使用到checkbox的点击效果以及点击后是否选中(checked)的效果,所以checkbox不能隐藏,但可以用覆盖的方式

为了减少多余标签的使用,可以使用伪元素:before、:after ,标签结构为

  <div class="switch-wrap">
        <span><span class="switch-action">开启</span>WLAN</span>
        <label class="switch">
            <input type="checkbox" name="switch" id="switch">
        </label>
    </div>

3. 开关的实现

用:before伪元素作为开关背景层,用:after伪元素作为开关项(即那个小圆圈)

        .switch input:before {
            content: ‘‘;
            display: inline-block;
            position: relative;
            border-radius: 20px;
            border: 1px solid #ccccc6;
            box-shadow: 0 0 1px 1px #ececf3;
            background-color: #fff;
            cursor: pointer;
        }
        .switch input:after {
            content: ‘‘;
            position: absolute;
            width: 12px;
            height: 12px;
            top: 2px;
            left: 3px;
            border-radius: 50%;
            background-color: #ccccc6;
            transition: .2s left, .2s background-color;
        }

初始小圆圈在左侧,当开关状态为开启时,右移,并更新开启状态的背景色

        .switch input:checked:after {
            left: 15px;
            background-color: #36a6fa;
            transition: .2s left, .2s background-color;
        }

以上就是关键的代码了,以下为完整的样式

 1 <style>
 2     .switch-wrap {
 3             position: relative;
 4             margin: 50px auto;
 5             width: 120px;
 6             height: 40px;
 7             font: 14px/1.5 Arial, Sans-Serif;
 8         }
 9
10         .switch,
11         .switch input,
12         .switch input:before {
13             width: 30px;
14             height: 14px;
15         }
16
17         .switch input {
18             position: absolute;
19             right: 0;
20         }
21
22         .switch input:before {
23             content: ‘‘;
24             display: inline-block;
25             position: relative;
26             border-radius: 20px;
27             border: 1px solid #ccccc6;
28             box-shadow: 0 0 1px 1px #ececf3;
29             background-color: #fff;
30             cursor: pointer;
31         }
32
33         .switch input:after {
34             content: ‘‘;
35             position: absolute;
36             width: 12px;
37             height: 12px;
38             top: 2px;
39             left: 3px;
40             border-radius: 50%;
41             background-color: #ccccc6;
42             transition: .2s left, .2s background-color;
43         }
44
45         .switch input:checked:after {
46             left: 15px;
47             background-color: #36a6fa;
48             transition: .2s left, .2s background-color;
49         }
50
51
52     </style>

完整CSS代码

4. 开关的测试

最后,可结合JS检测一下开关的状态变化

    <script src="jquery.js"></script>
    <script type="text/javascript">
        $(‘#switch‘).change(function() {
            $(‘.switch-action‘).text(this.checked ? ‘关闭‘ : ‘开启‘);
        });
    </script>
时间: 2024-10-29 19:12:00

MIUI选项框开关样式模拟的相关文章

【新特性速递】新增复选框开关样式

FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对复选框进行了增强,通过一个属性启用开关样式. 先来看下示例效果,浅色主题(Pure Black): 深色主题(Dark Hive): 在这个更新中,我们为CheckBox控件新增了如下 4 个属性: DisplayType:复选框的显示类型(可选项为:default, switch) ShowSwitchText:是否显示开关类型的文本 SwitchOnText:选中状态的显示文本(一般不需要设置,在语言资源里定义) Swit

[js开源组件开发]模拟下拉选项框select

模拟下拉选项框select 在css3流行的情况下,下拉框还是无法满足PD的需求,所以有了autosearch,有了模拟下拉框.效果如下图: select DEMO请案例点击这里查看.http://www.lovewebgames.com/jsmodule/select.html 源码查看下载请点击这里https://github.com/tianxiangbing/select 调用示例 <select name="select" id="select"&g

CSS自定义select下拉选择框的样式(不用其他标签模拟)

CSS自定义select下拉选择框的样式(不用其他标签模拟):http://www.jb51.net/css/148841.html CSS美化选择框:http://www.cnblogs.com/shishm/archive/2012/03/02/2376759.html 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5

angularJS 可编辑下拉选项框

功能介绍: 该组件将文本框和下拉框的组合,当你点击最右边的下拉按钮,实现下拉框选择的功能:当你选中文本框,实现文本框输入的功能.将文本框和下拉框设置name属性一样他自动会把对应下拉框的值传入后台,而文本框的值不传,当你做文本框使用,它会把文本框的值传入后台而下拉框的值不传. 可编辑下拉选项框 ANY 1 1.html代码 1 <!DOCTYPE html> 2 <html ng-app="myapp"> 3 <head> 4 <meta ch

Android底部弹出iOS7风格对话选项框

<Android底部弹出iOS7风格对话选项框> 效果图如下: 网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详.我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CSDN的完整库项目(完整的Android库项目代码我已经上传到CSDN,下载地址:http://download.csdn.net/download/z

前端插件之Bootstrap Switch 选择框开关控制

简介 Bootstrap Switch是一款轻量级插件,可以给选择框设置类似于开关的样式 它是依赖于Bootstrap的一款插件 下载 下载地址 在线引用 导入 因为它是依赖于Bootstrap的一款插件,所以,在引入之前要先引入Bootstrap样式 <link rel="stylesheet" type="text/css" href="/static/plugin/bootstrap/css/bootstrap.min.css">

elementUI单选框按钮样式

elementUI 单选框按钮样式,用el-radio-group标签嵌套着el-radio-button,就是单选框的按钮样式 可以通过size属性,指定单选框按钮的大小,size属性可选的值有medium,small,mini el-radio-button的其他用法和el-radio一样 例子: <template> <div> <el-radio-group v-model="radio" @change="getValue()"

WeChat-SmallProgram:自定义select下拉选项框组件

1):创建组件所需的文件 2):自定义组件 CSS 及 JS 组件的wxml: <view class='com-selectBox'> <view class='com-sContent' bindtap='selectToggle'> <view class='com-sTxt'>{{nowText}}</view> <image src='../../public/img/local/down.png' class='com-sImg' anim

Xcode常见的选项框

当拖拽资源进入项目时候 ?会提示的选项框 1.Destination ? ? ? ? Copy iTems if ?needs ?将资源copy进自己项目,不过不勾选的话文件就还是自己的源文件,在项目中的操作直接影响源文件 ? 2.added field ?? ? ?1. Create ?groups ? ? ? ? ? ? ? ? 创建一个分组,不是一个真实文件夹,文件夹颜色为黄色 ? ?2.Create folder references ? 创建一个真实文件夹,将资源放进去,在项目文件中