zoukankan      html  css  js  c++  java
  • 5.用 CSS 创作一个立体滑动 toggle 交互控件

    原文地址:https://segmentfault.com/a/1190000014638655

    HTML代码:

    <html>
        <head>
            <link rel="stylesheet" href="index.css">
            <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
        </head>
        <body>
            <div class="checkbox">
                <div class="inner">
                    <div class="toggle"></div>
                </div>
            </div>
            <script src="index.pack.js"></script>
        </body>
    </html>

    CSS代码:

    /* */
    /* 居中显示: */
    html,
    body,
    .checkbox,
    .checkbox .inner,
    .checkbox .inner .toggle {
        margin: 0;
        padding: 0;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    /* 画出外侧椭圆: */
    .checkbox {
        width: 10em;
        height: 5em;
        background: linear-gradient(silver, whitesmoke);
        border-radius: 2.5em;
        font-size: 30px;
    }
    /* 画出内侧椭圆 */
    .checkbox .inner {
        width: 8em;
        height: 3.5em;
        background: linear-gradient(dimgray, silver);
        border-radius: 2em;
        box-shadow: inset 0 0 1.5em rgba(0, 0, 0, 0.5);
    }
    /* 画出圆形按钮: */
    .checkbox .inner .toggle {
        width: 3.5em;
        height: 3.5em;
        background: linear-gradient(to top, silver, whitesmoke);
        border-radius: 50%;
        box-shadow: 0 0.4em 0.6em rgba(0, 0, 0, 0.2);
        position: relative;
        left: -30%;
    }
    /* 为圆形按钮增加立体效果: */
    .checkbox .inner .toggle::before {
        content: 'OFF';
        position: absolute;
        width: 80%;
        height: 80%;
        background: linear-gradient(silver, whitesmoke);
        border-radius: 50%;
        text-align: center;
        line-height: calc(3.5em * 0.8);
        font-family: sans-serif;
        color: gray;
    }
    
    /* 设置 active 时控件的样式: */
    .checkbox .inner.active {
        background: linear-gradient(green, limegreen);
    }
    .checkbox .inner.active .toggle {
        left: 30%;
    }
    .checkbox .inner.active .toggle::before {
        content: 'ON';
        color: limegreen;
    }

    JS代码:

    $(document).ready(function() {
        $('.toggle').click(function() {
            $('.inner').toggleClass('active');
        });
    });
  • 相关阅读:
    操作系统第一天学习
    进制之间的转换
    git的使用
    Python 第二天学习(文件的处理)
    下载博客首页的博客列表
    获取所有的列表
    抓取指定博客的内容
    进程简介
    python 内置函数range和xrange
    关于read的例子和条件测试
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/10103905.html
Copyright © 2011-2022 走看看