CSS3 模拟 IOS 滑动开关

简介: H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释



前言


H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释


效果



代码


CSS3模拟IOS开关
       /* ==========================================================================
                        设置根元素字体大小
       ========================================================================== */
        html {
            font-size: 100px;
        }
        /* ==========================================================================
                        设置模拟元素的包裹层,装饰...毫无卵用
       ========================================================================== */
       .ios-checkbox{
            height:4rem;
            width:4rem;
            position:absolute;
            left:50%;
            top:50%;
            -webkit-transform:translate(-50%, -50%);
                    transform:translate(-50%, -50%);
            border:.05rem dashed #3DB7A9;
            display:-webkit-box;
            display:-webkit-flex;
            display:-ms-flexbox;
            display:flex;
            -webkit-box-orient:horizontal;
            -webkit-box-direction:normal;
            -webkit-flex-direction:column;
                -ms-flex-direction:column;
                    flex-direction:column;
            -webkit-flex-wrap:nowrap;
                -ms-flex-wrap:nowrap;
                    flex-wrap:nowrap;
            -webkit-justify-content:space-around;
                -ms-flex-pack:distribute;
                    justify-content:space-around;
            -webkit-box-align:center;
            -webkit-align-items:center;
                -ms-flex-align:center;
                    align-items:center;
       }
        /* ==========================================================================
                    label标签模拟按钮         
       ========================================================================== */
        .emulate-ios-button {
            display: block;
            width: 2rem;
            height: 1rem;
            background: #ccc;
            border-radius: 5rem;
            cursor: pointer;
            position: relative;
            -webkit-transition: all .3s ease;
            transition: all .3s ease;
        }
        /* ==========================================================================
                    设置伪类,来实现模拟滑块滑动,过渡用了transition来实现 ,
                    translateZ来强制启用硬件渲染   
       ========================================================================== */
        .emulate-ios-button:after {
            content: '';
            display: block;
            width: .9rem;
            height: .9rem;
            border-radius: 100%;
            background: #fff;
            box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
            position: absolute;
            left: .05rem;
            top: .05rem;
            -webkit-transform:translateZ(0);    
            transform:translateZ(0);
            -webkit-transition: all .3s ease;  
            transition: all .3s ease;
        }
        .emulate-ios-button:active:after {
            width: 1.1rem;
        }
      /* ==========================================================================
                    设置raw-checkbox,视觉直观比较 
       ========================================================================== */
        .raw-checkbox{
            height:2rem;
            width:2rem;
        }
        .raw-checkbox:checked+label {
            background: #34bf49;
        }
        /* 这里是伪元素偏移,初始是0.9+0.05 ,所以这里1.05rem */
        .raw-checkbox:checked+label:after {
            left: 1.05rem;
        }
        .raw-checkbox:checked+label:active:after {
            left: .5rem;
        }
        .raw-checkbox:disabled+label {
            background: #d5d5d5;
            pointer-events: none;
        }
        .raw-checkbox:disabled+label:after {
            background: #bcbdbc;
        }


目录
相关文章
|
6月前
|
前端开发
页面无法滑动-CSS: touch-action属性
页面无法滑动-CSS: touch-action属性
37 0
|
6月前
CSS3滑动轮播动画
CSS3滑动轮播动画
56 8
|
JSON 小程序 Android开发
小程序列表左滑效果在IOS呈上下滑动影响样式
小程序列表左滑效果在IOS呈上下滑动影响样式
125 0
|
3月前
|
前端开发
背景滑动,动感加倍:CSS动画对角线效果全解析!
背景滑动,动感加倍:CSS动画对角线效果全解析!
|
3月前
|
前端开发
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!
|
6月前
|
前端开发
css去除滑动框
css去除滑动框
59 2
|
6月前
|
前端开发
css样式实现一个滑动按钮
css样式实现一个滑动按钮
56 0
|
6月前
|
Web App开发 移动开发 Android开发
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
|
6月前
|
Web App开发 前端开发 JavaScript
ios 系统滑动问题
ios 系统滑动问题
43 0
|
6月前
|
iOS开发
【怒怼老乔】居然苹果手机IOS系统还不支持css3的transparent属性值,我去~~~~
【怒怼老乔】居然苹果手机IOS系统还不支持css3的transparent属性值,我去~~~~