css动画之hamburgers

news2024/12/23 23:52:38

动效1

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div>
			<label class="hamburger">
				<input type="checkbox">
				<svg viewBox="0 0 32 32">
					<path class="line line-top-bottom"
						d="M27 10 13 10C10.8 10 9 8.2 9 6 9 3.5 10.8 2 13 2 15.2 2 17 3.8 17 6L17 26C17 28.2 18.8 30 21 30 23.2 30 25 28.2 25 26 25 23.8 23.2 22 21 22L7 22">
					</path>
					<path class="line" d="M7 16 27 16"></path>
				</svg>
			</label>
		</div>
	</body>
	<style>
		html {
			background-color: #000;
		}

		.hamburger {
			cursor: pointer;
		}

		.hamburger input {
			display: none;
		}

		.hamburger svg {
			height: 3em;
			transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
		}

		.line {
			fill: none;
			stroke: white;
			stroke-linecap: round;
			stroke-linejoin: round;
			stroke-width: 3;
			transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
				stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
		}

		.line-top-bottom {
			stroke-dasharray: 12 63;
		}

		.hamburger input:checked+svg {
			transform: rotate(-45deg);
		}

		.hamburger input:checked+svg .line-top-bottom {
			stroke-dasharray: 20 300;
			stroke-dashoffset: -32.42;
		}
	</style>
</html>

动效2

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input id="checkbox" type="checkbox">
		<label class="toggle" for="checkbox">
			<div id="bar1" class="bars"></div>
			<div id="bar2" class="bars"></div>
			<div id="bar3" class="bars"></div>
		</label>
		<style>
			html {
				background-color: #000;
			}

			#checkbox {
				display: none;
			}

			.toggle {
				position: relative;
				width: 30px;
				height: 30px;
				cursor: pointer;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 7px;
				transition-duration: .5s;
			}

			.bars {
				width: 100%;
				height: 4px;
				background-color: #fff;
				border-radius: 4px;
			}

			#bar2 {
				transition-duration: .8s;
			}

			#checkbox:checked+.toggle .bars {
				position: absolute;
				transition-duration: .5s;
			}

			#checkbox:checked+.toggle #bar2 {
				transform: scaleX(0);
				transition-duration: .5s;
			}

			#checkbox:checked+.toggle #bar1 {
				width: 100%;
				transform: rotate(45deg);
				transition-duration: .5s;
			}

			#checkbox:checked+.toggle #bar3 {
				width: 100%;
				transform: rotate(-45deg);
				transition-duration: .5s;
			}

			#checkbox:checked+.toggle {
				transition-duration: .5s;
				transform: rotate(180deg);
			}
		</style>
	</body>
</html>

动效3

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<label class="menuButton" for="check">
			<input type="checkbox" id="check">
			<span class="top"></span>
			<span class="mid"></span>
			<span class="bot"></span>
		</label>
		<style>
			html {
				background-color: #000;
			}

			.menuButton {
				display: flex;
				justify-content: center;
				align-items: center;
				flex-direction: column;
				gap: 7px;
				width: 30px;
				height: 30px;
			}

			input[type="checkbox"] {
				-webkit-appearance: none;
				display: none;
				visibility: hidden;
			}

			.menuButton span {
				width: 30px;
				height: 4px;
				background: #fff;
				border-radius: 100px;
				transition: 0.3s ease;
			}

			input[type]:checked~span.top {
				transform: translateY(290%) rotate(45deg);
				width: 40px;
			}

			input[type]:checked~span.bot {
				transform: translateY(-270%) rotate(-45deg);
				width: 40px;
			}

			input[type]:checked~span.mid {
				transform: translateX(-20px);
				opacity: 0;
			}
		</style>
	</body>
</html>

动效4

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="checkbox" id="checkbox">
		<label for="checkbox" class="toggle">
			<div class="bars" id="bar1"></div>
			<div class="bars" id="bar2"></div>
			<div class="bars" id="bar3"></div>
		</label>
		<style>
			html {
				background-color: #000;
			}

			#checkbox {
				display: none;
			}

			.toggle {
				position: relative;
				width: 30px;
				height: 30px;
				cursor: pointer;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 7px;
				transition-duration: .3s;
			}

			.bars {
				width: 100%;
				height: 4px;
				background-color: #fff;
				border-radius: 5px;
				transition-duration: .3s;
			}

			#checkbox:checked+.toggle .bars {
				margin-left: 13px;
			}

			#checkbox:checked+.toggle #bar2 {
				transform: rotate(135deg);
				margin-left: 0;
				transform-origin: center;
				transition-duration: .3s;
				opacity: 0;
			}

			#checkbox:checked+.toggle #bar1 {
				transform: rotate(45deg);
				transition-duration: .3s;
				transform-origin: left center;
			}

			#checkbox:checked+.toggle #bar3 {
				transform: rotate(-45deg);
				transition-duration: .3s;
				transform-origin: left center;
			}
		</style>
	</body>
</html>

动效5

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<label for="menu-icon" class="menu-icon">
			<input id="menu-icon" type="checkbox" />
			<span></span>
			<span></span>
			<span></span>
		</label>
		<style>
			html {
				background-color: #000;
			}

			.menu-icon {
				width: 30px;
				height: 30px;
				cursor: pointer;
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 7px;
			}

			.menu-icon input {
				display: none;
			}

			.menu-icon span {
				height: 4px;
				width: 30px;
				background: #fff;
				border-radius: 10px;
				transition: 0.3s ease-in-out;
			}

			.menu-icon span {
				transform-origin: left center;
			}

			.menu-icon input:checked~span {
				background: #fff;
			}

			.menu-icon input:checked~span:nth-of-type(1) {
				transform: rotate(45deg);
			}

			.menu-icon input:checked~span:nth-of-type(2) {
				opacity: 0;
			}

			.menu-icon input:checked~span:nth-of-type(3) {
				transform: rotate(-45deg);
			}
		</style>
	</body>
</html>

动效6

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input id="toggleChecker" type="checkbox">
		<label id="togglerLable" for="toggleChecker">
			<div class="checkboxtoggler">
				<div class="line-1"></div>
				<div class="line-2"></div>
				<div class="line-3"></div>
			</div>
		</label>
		<style>
			html {
				background-color: #000;
			}

			.checkboxtoggler {
				width: 30px;
				height: 30px;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 7px;
				cursor: pointer;
			}

			.line-1 {
				background: #fff;
				width: 30px;
				height: 4px;
				border-radius: 10px;
				transition-duration: 500ms;
			}

			.line-2 {
				background: #fff;
				width: 30px;
				height: 4px;
				border-radius: 10px;
				transition-duration: 500ms;
			}

			.line-3 {
				background: #fff;
				width: 30px;
				height: 4px;
				border-radius: 10px;
				transition-duration: 500ms;
			}

			#toggleChecker {
				height: 4px;
				width: 100%;
				display: none;
			}

			#toggleChecker:checked+#togglerLable .checkboxtoggler .line-1 {
				transform: rotate(45deg) translateY(8px) translateX(8px);
			}

			#toggleChecker:checked+#togglerLable .checkboxtoggler .line-2 {
				transform: rotate(-45deg) translateY(0px) translateX(0px);
			}

			#toggleChecker:checked+#togglerLable .checkboxtoggler .line-3 {
				transform: scaleX(0);
				transform-origin: left;
			}
		</style>
	</body>
</html>

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

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

相关文章

Redis主从、哨兵、集群讲解

一、Redis主从 大家在面试中可能经常会被问到Redis的高可用问题。Redis高可用回答包括两个层面&#xff0c;一个就是数据不能丢失&#xff0c;或者说尽量减少丢失 ;另外一个就是保证Redis服务不中断 。 对于尽量减少数据丢失&#xff0c;可以通过AOF和RDB保证。 对于保证服务…

捷报频传 | 北京讯通喜获中国信通院2023“Zero Trust Ready SDP解决方案”证书

中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;算网融合团队联合各生态伙伴&#xff0c;共同发起“Zero Trust Ready”项目&#xff0c;推动零信任&#xff08;Zero Trust&#xff09;技术与产业发展。该项目旨在从垂直行业的网络安全需求出发&#xff0c;…

『大模型笔记』从头开始代码构建GPT!

从头开始代码构建GPT! 文章目录 一. 从头开始代码构建GPT!二. 参考文献一. 从头开始代码构建GPT! 我们构建了一个生成式预训练Transformer (GPT),遵循论文《Attention is All You Need》和OpenAI的GPT-2 / GPT-3的方法。我们讨论了与ChatGPT的联系,ChatGPT已经风靡全球。我…

牛马真的沉默了,入职第一天就干活

入职第一天就干活的&#xff0c;就问还有谁&#xff0c;搬来一台N手电脑&#xff0c;第一分钟开机&#xff0c;第二分钟派活&#xff0c;第三分钟干活&#xff0c;巴适。。。。。。 打开代码发现问题不断 读取配置文件居然读取两个配置文件&#xff0c;一个读一点&#xff0c;…

掌握Go语言中的net/http包:编写高性能Web服务

掌握Go语言中的net/http包&#xff1a;编写高性能Web服务 引言HTTP服务器构建基础服务器设置路由与处理函数中间件使用高级配置&#xff08;如TLS/SSL&#xff09; HTTP客户端开发创建与使用HTTP客户端处理响应 高级客户端特性 处理JSON与表单数据接收与解析JSON接收与解析表单…

Langchain:数据连接封装、缓存封装和LCEL学习和探索

&#x1f335; 目录 &#x1f335; &#x1f60b; 数据连接封装 &#x1f354; 文档加载器&#xff1a;Document Loaders 文档处理器&#xff1a;TextSplitter 向量数据库与向量检索 总结 &#x1f349; 缓存封装&#xff1a;Memory &#x1f3d6;️ 对话上下文&#xf…

Docker | 基础指令

环境&#xff1a;centos8 参考&#xff1a; 安装 Docker | Docker 从入门到实践https://vuepress.mirror.docker-practice.com/install/ 安装Docker 卸载旧版本&#xff0c;安装依赖包&#xff0c;添加yum软件源&#xff0c;更新 yum 软件源缓存&#xff0c;安装 docker-ce…

保研笔试复习——nju

文章目录 一、单选计算机网络计算机组成原理数字逻辑电路数据结构操作系统微机系统 多选题计算机网络计算机系统结构操作系统 免责声明&#xff1a;题目源自于网络&#xff0c;侵删。 就在今天2024-5-18&#xff0c;考的题下面的只有一道AVL的原题&#xff0c;其他都不是原题&a…

Python操作MySQL数据库的工具--sqlalchemy

文章目录 一、pymysql和sqlalchemy的区别二、sqlalchemy的详细使用1.安装库2.核心思想3.整体思路4.sqlalchemy需要连接数据库5.使用步骤1.手动提前创建数据库2.使用代码创建数据表3.用代码操作数据表3.1 增加数据3.2 查询数据3.3 删除数据3.4 修改数据 一、pymysql和sqlalchemy…

mysql 按区间统计 3 分钟维度

根据 UNIX_TIMESTAMP 去掉分钟后的的位数 思路如下select UNIX_TIMESTAMP(now()) 当前时间 秒,now() 当前时间,FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(CURRENT_TIMESTAMP) / (3 * 60)) * (3 * 60)) 3分钟为分隔去掉多余位数当前时间 秒 当前时间 3分钟为分隔去掉多余…

电磁仿真软件CST六面体网格和六面体TLM网格的区别【仿真入门】

六面体网格&#xff08;1&#xff09; Time Domain Solver中使用的Hexahedral Mesh&#xff01; 网格可以说是为了Maxwell方程式计算&#xff0c;将仿真结构分割成许多小的网格单元。因此&#xff0c;仿真计算中识别的结构是网格结构。 Time Domain Solver中使用的Hexahedra…

什么是线程安全?如何保证线程安全?

目录 一、引入线程安全 &#x1f447; 二、 线程安全&#x1f447; 1、线程安全概念 &#x1f50d; 2、线程不安全的原因 &#x1f50d; 抢占式执行&#xff08;罪魁祸首&#xff0c;万恶之源&#xff09;导致了线程之间的调度是“随机的” 多个线程修改同一个变量 修改…

每日一题《leetcode--116.填充每个结点的下一个右侧结点》

https://leetcode.cn/problems/populating-next-right-pointers-in-each-node/ 题目要求给每个结点的next指针进行填充&#xff0c;使每个结点的next指针指向其下一个右侧结点。如果右侧没有结点&#xff0c;则将next指针设置为空。 struct Node* connect(struct Node* root) {…

OpenP2P使用分享

软件介绍 大家好&#xff0c;今天我跟大家分享另一种内网穿透的方式。说起内网穿透&#xff0c;可能大家首先想到的是VPN&#xff0c;它是一种常见的内网穿透技术&#xff0c;能够让我们在远程访问内网资源。但是&#xff0c;VPN需要公网IP和服务器&#xff0c;而且配置相对复…

智能的PHP开发工具PhpStorm v2024.1全新发布——支持PHPUnit 11.0

PhpStorm是一个轻量级且便捷的PHP IDE&#xff0c;其旨在提高用户效率&#xff0c;可深刻理解用户的编码&#xff0c;提供智能代码补全&#xff0c;快速导航以及即时错误检查。可随时帮助用户对其编码进行调整&#xff0c;运行单元测试或者提供可视化debug功能。 立即获取PhpS…

路由聚合和VRRP技术

实验拓扑图&#xff1a; 实验需求 1、内网IP地址使用172.16.0.0/16 2、SW1和SW2之间互为备份&#xff1b; 3、VRRP/stp/vlan/eth-trunk均使用&#xff1b; 4、所有pc均通过DHCP获取IP地址&#xff1b; 5、ISP只配置IP地址&#xff1b; 6、所有电脑可以正常访问ISP路由器环…

什么是云计算安全?如何保障云计算安全

云计算彻底改变了数据存储的世界&#xff0c;它使企业可以远程存储数据并随时随地从任何位置访问数据。存和取变得简单&#xff0c;也使得云上数据极易造成泄露或者被篡改&#xff0c;所以云计算安全就显得非常重要了。那么什么是云计算安全&#xff1f; 其实&#xff0c;云计…

EN6347QI 开关稳压器 4A 贴片QFN-38 参数资料 应用案例 相关型号

EN6347QI 是一款直流/直流开关转换器。它是一款高效率的 buck (降压) 转换器&#xff0c;内置了电感器&#xff0c;能够提供高达 4A 的输出电流。其工作电压范围为 4.5V 至 12V&#xff0c;输出电压可调&#xff0c;最高可达 15V。EN6347QI 适合于各种电子设备中&#xff0c;用…

K8s deployment 进阶

文章目录 K8s deployment 进阶Deployment 更新策略RecreateRollingUpdatemaxSurge 和 maxUnavailable minReadySecondsprogressDeadlineSeconds Deployment 版本回滚Deployment 实现灰度发布 K8s deployment 进阶 Deployment 更新策略 Recreate 重建 (Recreate&#xff09;&…

Vue进阶之Vue项目实战(三)

Vue项目实战 图表渲染安装echarts图表渲染器(图表组件)图表举例:创建 ChartsRenderer.vue创建 ChartsDataTransformer.ts基于 zrender 开发可视化物料安装 zrender画一个矩形画一个柱状图基于svg开发可视化物料svg小示例使用d3进行图表渲染安装d3基本使用地图绘制本地持久化拓…