分享一个霓虹灯拨动开关

news2025/1/15 6:27:06

先看效果:
在这里插入图片描述
再看代码(查看更多):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> 霓虹灯拨动开关</title>
    <style>
        * {
            border: 0;
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        :root {
            --hue: 223;
            --off-hue: 3;
            --on-hue1: 123;
            --on-hue2: 168;
            --fg: hsl(var(--hue),10%,90%);
            --primary: hsl(var(--hue),90%,50%);
            --trans-dur: 0.6s;
            --trans-timing: cubic-bezier(0.65,0,0.35,1);
            font-size: calc(40px + (60 - 40) * (100vw - 320px) / (2560 - 320));
        }
        body,
        input {
            font: 1em/1.5 sans-serif;
        }
        body {
            background-image: linear-gradient(45deg,hsl(var(--hue),10%,20%), hsl(var(--hue),10%,10%));
            color: var(--fg);
            display: flex;
            height: 100vh;
            transition:
                    background-color var(--trans-dur),
                    color var(--trans-dur);
        }
        .switch,
        .switch__input {
            -webkit-tap-highlight-color: #0000;
        }
        .switch {
            display: block;
            margin: auto;
            position: relative;
            width: 5em;
            height: 3em;
        }
        .switch__base-outer,
        .switch__base-inner {
            display: block;
            position: absolute;
        }
        .switch__base-outer {
            border-radius: 1.25em;
            box-shadow:
                    -0.125em -0.125em 0.25em hsl(var(--hue),10%,30%),
                    0.125em 0.125em 0.125em hsl(var(--hue),10%,30%) inset,
                    0.125em 0.125em 0.25em hsl(0,0%,0%),
                    -0.125em -0.125em 0.125em hsl(var(--hue),10%,5%) inset;
            top: 0.125em;
            left: 0.125em;
            width: 4.75em;
            height: 2.75em;
        }
        .switch__base-inner {
            border-radius: 1.125em;
            box-shadow:
                    -0.25em -0.25em 0.25em hsl(var(--hue),10%,30%) inset,
                    0.0625em 0.0625em 0.125em hsla(var(--hue),10%,30%),
                    0.125em 0.25em 0.25em hsl(var(--hue),10%,5%) inset,
                    -0.0625em -0.0625em 0.125em hsla(var(--hue),10%,5%);
            top: 0.375em;
            left: 0.375em;
            width: 4.25em;
            height: 2.25em;
        }
        .switch__base-neon {
            display: block;
            overflow: visible;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: auto;
        }
        .switch__base-neon path {
            stroke-dasharray: 0 104.26 0;
            transition: stroke-dasharray var(--trans-dur) var(--trans-timing);
        }
        .switch__input {
            outline: transparent;
            position: relative;
            width: 100%;
            height: 100%;
            -webkit-appearance: none;
            appearance: none;
        }
        .switch__input:before {
            border-radius: 0.125em;
            box-shadow: 0 0 0 0.125em hsla(var(--hue),90%,50%,0);
            content: "";
            display: block;
            position: absolute;
            inset: -0.125em;
            transition: box-shadow 0.15s linear;
        }
        .switch__input:focus-visible:before {
            box-shadow: 0 0 0 0.125em var(--primary);
        }
        .switch__knob,
        .switch__knob-container {
            border-radius: 1em;
            display: block;
            position: absolute;
        }
        .switch__knob {
            background-color: hsl(var(--hue),10%,15%);
            background-image:
                    radial-gradient(88% 88% at 50% 50%,hsl(var(--hue),10%,20%) 47%,hsla(var(--hue),10%,20%,0) 50%),
                    radial-gradient(88% 88% at 47% 47%,hsl(var(--hue),10%,85%) 45%,hsla(var(--hue),10%,85%,0) 50%),
                    radial-gradient(65% 70% at 40% 60%,hsl(var(--hue),10%,20%) 46%,hsla(var(--hue),10%,20%,0) 50%);
            box-shadow:
                    -0.0625em -0.0625em 0.0625em hsl(var(--hue),10%,15%) inset,
                    -0.125em -0.125em 0.0625em hsl(var(--hue),10%,5%) inset,
                    0.75em 0.25em 0.125em hsla(0,0%,0%,0.8);
            width: 2em;
            height: 2em;
            transition: transform var(--trans-dur) var(--trans-timing);
        }
        .switch__knob-container {
            overflow: hidden;
            top: 0.5em;
            left: 0.5em;
            width: 4em;
            height: 2em;
        }
        .switch__knob-neon {
            display: block;
            width: 2em;
            height: auto;
        }
        .switch__knob-neon circle {
            opacity: 0;
            stroke-dasharray: 0 90.32 0 54.19;
            transition:
                    opacity var(--trans-dur) steps(1,end),
                    stroke-dasharray var(--trans-dur) var(--trans-timing);
        }
        .switch__knob-shadow {
            border-radius: 50%;
            box-shadow: 0.125em 0.125em 0.125em hsla(0,0%,0%,0.9);
            display: block;
            position: absolute;
            top: 0.5em;
            left: 0.5em;
            width: 2em;
            height: 2em;
            transition: transform var(--trans-dur) var(--trans-timing);
        }
        .switch__led {
            background-color: hsl(var(--off-hue),90%,70%);
            border-radius: 50%;
            box-shadow:
                    0 -0.0625em 0.0625em hsl(var(--off-hue),90%,40%) inset,
                    0 0 0.125em hsla(var(--off-hue),90%,70%,0.3),
                    0 0 0.125em hsla(var(--off-hue),90%,70%,0.3),
                    0.125em 0.125em 0.125em hsla(0,0%,0%,0.5);
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 0.25em;
            height: 0.25em;
            transition:
                    background-color var(--trans-dur) var(--trans-timing),
                    box-shadow var(--trans-dur) var(--trans-timing);
        }
        .switch__text {
            overflow: hidden;
            position: absolute;
            width: 1px;
            height: 1px;
        }
        .switch__input:checked ~ .switch__led {
            background-color: hsl(var(--on-hue1),90%,70%);
            box-shadow:
                    0 -0.0625em 0.0625em hsl(var(--on-hue1),90%,40%) inset,
                    0 -0.125em 0.125em hsla(var(--on-hue1),90%,70%,0.3),
                    0 0.125em 0.125em hsla(var(--on-hue1),90%,70%,0.3),
                    0.125em 0.125em 0.125em hsla(0,0%,0%,0.5);
        }
        .switch__input:checked ~ .switch__base-neon path {
            stroke-dasharray: 52.13 0 52.13;
        }
        .switch__input:checked ~ .switch__knob-shadow,
        .switch__input:checked ~ .switch__knob-container .switch__knob {
            transform: translateX(100%);
        }
        .switch__input:checked ~ .switch__knob-container .switch__knob-neon circle {
            opacity: 1;
            stroke-dasharray: 45.16 0 45.16 54.19;
            transition-timing-function: steps(1,start), var(--trans-timing);
        }
    </style>
</head>
<body>
<label class="switch">
    <input class="switch__input" type="checkbox" role="switch">
    <span class="switch__base-outer"></span>
    <span class="switch__base-inner"></span>
    <svg class="switch__base-neon" viewBox="0 0 40 24" width="40px" height="24px">
        <defs>
            <filter id="switch-glow">
                <feGaussianBlur result="coloredBlur" stddeviation="1"></feGaussianBlur>
                <feMerge>
                    <feMergeNode in="coloredBlur"></feMergeNode>
                    <feMergeNode in="SourceGraphic"></feMergeNode>
                </feMerge>
            </filter>
            <linearGradient id="switch-gradient1" x1="0" y1="0" x2="1" y2="0">
                <stop offset="0%" stop-color="hsl(var(--on-hue1),90%,70%)" />
                <stop offset="100%" stop-color="hsl(var(--on-hue2),90%,70%)" />
            </linearGradient>
            <linearGradient id="switch-gradient2" x1="0.7" y1="0" x2="0.3" y2="1">
                <stop offset="25%" stop-color="hsla(var(--on-hue1),90%,70%,0)" />
                <stop offset="50%" stop-color="hsla(var(--on-hue1),90%,70%,0.3)" />
                <stop offset="100%" stop-color="hsla(var(--on-hue2),90%,70%,0.3)" />
            </linearGradient>
        </defs>
        <path fill="none" filter="url(#switch-glow)" stroke="url(#switch-gradient1)" stroke-width="1" stroke-dasharray="0 104.26 0" stroke-dashoffset="0.01" stroke-linecap="round" d="m.5,12C.5,5.649,5.649.5,12,.5h16c6.351,0,11.5,5.149,11.5,11.5s-5.149,11.5-11.5,11.5H12C5.649,23.5.5,18.351.5,12Z"/>
    </svg>
    <span class="switch__knob-shadow"></span>
    <span class="switch__knob-container">
		<span class="switch__knob">
			<svg class="switch__knob-neon" viewBox="0 0 48 48" width="48px" height="48px">
				<circle fill="none" stroke="url(#switch-gradient2)" stroke-dasharray="0 90.32 0 54.19" stroke-linecap="round" stroke-width="1" r="23" cx="24" cy="24" transform="rotate(-112.5,24,24)" />
			</svg>
		</span>
	</span>
    <span class="switch__led"></span>
    <span class="switch__text">Power</span>
</label>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/844181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】安装pytorch3d

写在开头 不要看网上的博客安装&#xff0c;直接参考官方安装文档去安装。 坑 坑1&#xff1a;安装pytorch3d后torch.cuda用不了 使用下面的命令安装后 conda install pytorch3d会提示安装下面的包&#xff0c;注意pytorch和torchvision都是cpu版本的&#xff0c;这样就会…

以太网帧格式与吞吐量计算

以太网帧结构 帧大小的定义 以太网单个最大帧 6&#xff08;目的MAC地址&#xff09; 6&#xff08;源MAC地址&#xff09; 2&#xff08;帧类型&#xff09; 1500{IP数据包[IP头&#xff08;20&#xff09;DATA&#xff08;1480&#xff09;]} 4&#xff08;CRC校验&#xff…

【福建事业单位-资料分析】01 数学推理-基础-特征-非特征数列

【福建事业单位-资料分析】01 数学推理-基础-特征-非特征数列 一、基础数列总结 二、特征数列2.1 多重数列项数多&#xff0c;多于7项总结 2.2机械划分①小数;ab②大数字多&#xff08;三位数、四位数&#xff09;&#xff0c;达到一半或者以上总结 2.3分数数列大通分总结 2.4幂…

【MySQL】事务的多版本并发控制(MVCC)

目录 一、数据库并发的三种场景二、MVCC2.1 三个记录隐藏字段2.2 undo log&#xff08;撤销日志&#xff09;2.3 模拟MVCC2.3.1 模拟更新&#xff08;update&#xff09;2.3.1 模拟删除&#xff08;delete&#xff09;2.3.1 模拟插入&#xff08;insert&#xff09;2.3.1 模拟查…

bilibili的评论ip属地显示未知

现象 出于某些原因&#xff0c;我们在日常使用中的大部分平台都开启了IP地址显示&#xff0c;一般会显示当事人所在的地址&#xff0c;这其中就有一些奇怪的地址&#xff0c;&#xff08;在此不谈魔法&#xff09;就比如我最近在刷B站的时候&#xff0c;就在评论区发现了一些显…

C高级【day4】

思维导图&#xff1a; 写一个函数&#xff0c;获取用户的uid和gid并使用变量接收&#xff1a; #!/bin/bashfunction get_uid {my_uidid -umy_gidid -g }get_uid echo "当前用户的UID&#xff1a;$my_uid" echo "当前用户的GID&#xff1a;$my_gid"整理冒泡…

布隆过滤器,Guava实现布隆过滤器(本地内存),Redis实现布隆过滤器(分布式)

一、前言 利用布隆过滤器可以快速地解决项目中一些比较棘手的问题。如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断和缓存穿透等问题。不知道从什么时候开始&#xff0c;本来默默无闻的布隆过滤器一下子名声大噪&#xff0c;在面试中面试官问到怎么避免缓存穿透&#…

高级web前端开发工程师岗位的具体内容概述(合集)

高级web前端开发工程师岗位的具体内容概述1 职责&#xff1a; 1、负责前端页面开发和维护&#xff0c;并根据需求优化产品性能、用户体验、交互效果及各种主流浏览器以及各类型移动客户端的兼容适配工作; 2、配合产品经理和UI设计师&#xff0c;通过各种前端技术手段&#xf…

前端学习---vue2--指令修饰符详解

写在前面&#xff1a; 前端感觉系统学起来还行&#xff0c;我也不晓得我是咋快速入门1个月就开始看实习公司代码的。然后现在开始系统复习&#xff0c;然后感觉有的封装的还可以&#xff0c;不过就是我不晓得&#xff0c;像这个指令修饰符&#xff0c;其实说逻辑难写&#xff…

阿里、字节等大厂面试经历,过于真实了...

我一直想写点什么&#xff0c;但当时我觉得在得到几家大厂的offer之后再谈会更有说服力。但从目前的结果来看&#xff0c;结果并不十分令人满意。去年年底&#xff0c;我陆续面试了一些公司&#xff0c;比如迅雷、OPPO、阿里巴巴。当时&#xff0c;我并没有做任何准备&#xff…

ADS版图画封装学习笔记

ADS版图画封装 因为晶体管ATF54143在ADS中是没有封装的&#xff0c;所以要在ADS中画ATF54143的封装&#xff0c;操作步骤如下&#xff1a; 在ADS中新建layout&#xff0c;命名为ATF54143_layout&#xff0c; 根据datasheet知道封装的大小&#xff0c;进行绘制 在layout的con…

内网横向移动—资源约束委派

内网横向移动—资源约束委派 1. 资源约束委派1.1. 基于资源的约束委派的优势1.2. 约束性委派和基于资源的约束性委派配置的差别1.3. 利用条件1.3.1. 什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性1.3.2. 将机器加入域的域用户 2. 案例操作2.1. 获取目标信息2.…

题解:排序函数的应用,逻辑运算和算术运算之间的优先级

一、链接 5131. 按要求计算 二、题目 给定一个长度为 nn 的正整数序列 a1,a2,…,ana1,a2,…,an。 请你计算并输出 (min(a1,a2,…,an) xor a3)2(min(a1,a2,…,an) xor a3)2 的结果。 xorxor 表示按位异或。 输入格式 第一行包含整数 nn。 第二行包含 nn 个整数 a1,a2,……

了解文档管理软件在团队协作中的作用

在团队协作中&#xff0c;文档管理软件发挥着重要的作用。文档管理软件是一种使团队成员可以共享、编辑、审查和保存各种文档的工具。它以一种结构化的方式存储和组织文档&#xff0c;提供了团队成员之间的协同工作和知识共享的平台。 文档管理软件提供了一个集中的库&#xf…

前端工程化:模块化、包管理工具、打包工具(Webpack基本使用和优化)、前端性能监控

目录 1、模块化1. CommonJS/AMD/CMD1.1 背景1.2 CommonJS规范的核心变量1.3 exports(module.exports)和require本质1.4 exports和module.exports的关系/区别1.5 实际开发用&#xff1a;module.exports {}1.6 require(X)的查找规则&#xff08;1&#xff09;X是一个Node核心模块…

【深度学习笔记】TensorFlow 基础

在 TensorFlow 2.0 及之后的版本中&#xff0c;默认采用 Eager Execution 的方式&#xff0c;不再使用 1.0 版本的 Session 创建会话。Eager Execution 使用更自然地方式组织代码&#xff0c;无需构建计算图&#xff0c;可以立即进行数学计算&#xff0c;简化了代码调试的过程。…

上海亚商投顾:沪指缩量调整 超导概念逆势大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 沪指今日低开低走&#xff0c;深成指、创业板指盘中均跌超1%。医药医疗股全线调整&#xff0c;丽珠集团跌停&#…

蓝牙资讯|苹果或2025年推出AirTag 2,支持3D精确定位功能

LeaksApplePro 表示&#xff0c;苹果会在 2025 年推出 AirTag 2 追踪设备。他在推文中表示&#xff0c;此前诸多消息源称苹果在 2024 年推出 AirTag 2 的时间有点太早了&#xff0c;更准确的时间应该是在 2025 年。 他在推文中表示&#xff0c;苹果为 AirTag 2 准备了大量新功…

华为QinQ技术的基本qinq和灵活qinq 2种配置案例

基本qinq配置&#xff1a; 运营商pe设备在收到同一个公司的ce发来的的包&#xff0c;统一打上同样的vlan &#xff0c;如上图&#xff0c;同一个家公司两边统一打上vlan 2&#xff0c;等于在原内网vlan 10或20过来的包再统一打上vlan 2的标签&#xff0c;这样传输就不会和其它…

我在leetcode用动态规划炒股

事情是这样的&#xff0c;突然兴起的我在letcode刷题 121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III 以上三题。 1. 121. 买卖股票的最佳时机 1.1. 暴力遍历&#xff0c;两次遍历 1.1.1. 算法代码 public class Solution {public int Ma…