【菜单折叠效果】这菜单效果千万别让领导看了,一不小心就升职加薪(附源码)

news2024/10/6 22:19:23

写在前面
上周想着冲一波粉丝量(周冲700),但是事与愿违,没办法我只能不断的督促自己多分享,多总结了,那么今天晚上我就好好整理了一篇常见后台管理系统的菜单收缩动态效果,主要是用于后台管理系统。
涉及知识点
如何实现菜单折叠效果,web实现菜单收缩效果,CSS实现菜单隐藏展示效果,如何实现主页与菜单动态隐藏展示效果,纯html+css实现菜单动态缩放;
效果展示
其实效果展示我主要是想让人能看到自己想要的效果,然后才继续往下看,当然如果你有什么效果想要的可以底下留言哈,博主(csdn-拄杖盲学轻声码)定尽己所能去整理出留言文章。
在这里插入图片描述

目录

  • 1、实现原理(巧用CSS做JS的事)
  • 2、实现过程详解
    • A、实现小图标的切换(svg+CSS3)
    • B、菜单区域与主体区域动态效果实现
  • 3、完整代码分享
    • Html代码
    • Css代码
  • 4、涨薪专区

版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

1、实现原理(巧用CSS做JS的事)

正常思维有以下两种方式来实现:
A、通过点击事件onclick触发,执行不同dom元素的hide()或者show()方法;
B、通过点击事件onclick触发,控制dom元素的CSS属性display的值none/block;
今天我要讲的并不是这两个烂大街的方法,我是想通过纯html+css去实现菜单的隐藏展示效果,完全不需要js代码,具体思路实现如下:

设置好各个dom元素的相对位置与大小

采用label的for属性和input标签实现收缩按钮的动态切换

采用CSS缩放属性来实现主体部分的动态放大与缩小

2、实现过程详解

A、实现小图标的切换(svg+CSS3)

其实这里面我用的是svg图片,其实就是两个横杠,然后我利用CSS3的transform: rotate(xxxdeg);其中里面的xxx表示设置的角度值大小,也就是横线翻转的角度,当两个平行的线都设置不同的翻转角度的时候,就能够形成交叉线,这样也省得去设置什么背景图或者icon啥的,完全用css+svg来制作小图标及其切换效果:
效果图如下所示:

Html代码

<input type="checkbox" id="check" />
    <label for="check">
        <svg viewBox="0 0 30 30" width="30" height="30">
            <path id="one" d="M4 10h22M4" stroke="#fff" stroke-width="2" stroke-linecap="round"></path>
            <path id="two" d="M4 20h22M4" stroke="#fff" stroke-width="2" stroke-linecap="round"></path>
        </svg> Click me
    </label>

Css代码

#check:checked+label svg #one {
    transform: rotate(45deg);
}

#check:checked+label svg #two {
    transform: rotate(-45deg);
}

其实从这里你就能看出来我是自己设置了一个input选择框,然后通过点击操作来调整其svg的翻转角度来实现图标切换效果。

B、菜单区域与主体区域动态效果实现

其实我们的主体就是两大块,左边的菜单和右边的内容页,而且两边我都设置了一个渐变的背景色,渐变的实现主要就是利用CSS3的linear-gradient属性,我(csdn博主-拄杖盲学轻声码)有篇文章专门介绍,大家可以去看看。
今天我要讲的核心是切换效果,我主要是是通过设置以下两种属性:
<1> CSS3中的transform: scale缩放设置,其实原先的主体内容为啥会有一个变小的过程,主要是设置了其缩小比例,
<2> CSS3中的transform: translateX设置了水平方向的偏移值,和菜单宽度保持的差不多就可以;针对菜单如何隐藏我们可以设置其translateX值为-100%;
核心代码:
点击后设置样式针对主体模块:

transform: translateX(25vw) scale(0.7);

点击后设置样式针对菜单模块:

transform: translateX(-100%);

其实设置完这些的话就能达到这样的效果:

版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

3、完整代码分享

觉得不错的话烦请点个赞或收藏一下,您的支持将是博主分享源源不断的动力,有其他效果想看的可以留言哈,博主竭尽所能为您而作!!!

Html代码

<body>
    <input type="checkbox" id="check" />
    <label for="check">
        <svg viewBox="0 0 30 30" width="30" height="30">
            <path id="one" d="M4 10h22M4" stroke="#fff" stroke-width="2" stroke-linecap="round"></path>
            <path id="two" d="M4 20h22M4" stroke="#fff" stroke-width="2" stroke-linecap="round"></path>
        </svg> Click me
    </label>
    <aside>
        <div class="top">
            <h2>菜单管理</h2>
            <ul>
                <li>订单管理</li>
                <li>流水管理</li>
                <li>用户管理</li>
                <li>配置管理</li>
                <li>颜值管理</li>
            </ul>
        </div>
        <div class="bottom">
            <p>&copy; 2023 by CSDN-博主《拄杖盲学轻声码》</p>
        </div>
    </aside>
    <article>
        <div class="wrapper">
            <div class="content">
                <h1>订单业务数据</h1>
                <p>  一次,马克·吐温应一富翁邀请赴宴,主人为了炫耀他的富有,每道菜上来时,都要说出这道菜的价格。这时侍者端上来一盘葡萄,主人对来宾们说:“哟,好大的葡萄呀!每颗值一百美元呢!”客人们不一会将葡萄吃完了,这时马克·吐温从座位上站起来大声说:“味道真美呀,请你再给我来六美元吧,先生!”
                </p>
                <p>  法官在审问一个在电话亭和人打架的年轻人。“为什么打架?”法官问。“当时我很平静地在电话亭内跟我的女朋友聊天。”年轻人说,“这时那个家伙走过来了,他要打电话,我不让他打,他就把我从电话亭内赶了出来。”“这也怪不得你发脾气了。”法官想了想说。“还不只这样呢,”年轻人补充说,“他还把我的女朋友也从电话亭里赶了出来呢。”
                </p>
                <br>
                <h2>更多有趣的前端demo可搜索:CSDN博主 - <span style="color:red">《拄杖盲学轻声码》</span><br></h2>
            </div>
            <div class="footer">
                <p>跟随我的脚步 <a href="http://www.baofumeng.cn/inithdd/#/rewordData" target="_blank" title="">今日CSDN风云榜</a>
                </p>
            </div>
        </div>
    </article>
</body>

Css代码

 /* 更多好看特效可关注csdn博主-拄杖盲学轻声码 */
        *,
        ::before,
        ::after {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            height: 100vh;
            overflow: hidden;
            display: flex;
            line-height: 1.5;
            font-family: 'Signika', cursive;
            font-weight: 300;
            background-color: #21213d;
            color: #fff;
        }

        a {
            text-decoration: none;
            color: #3369e7;
        }

        #check {
            display: none;
        }

        #check+label {
            position: absolute;
            top: 1em;
            left: 1em;
            z-index: 1;
            display: flex;
            align-items: center;
            cursor: pointer;
        }

        #check+label::before {
            position: absolute;
            content: '';
            top: -1em;
            left: -1em;
            width: 100vw;
            height: 100vh;
            background-color: rgba(33, 33, 61, 0.5);
            transform-origin: 50% 50%;
            transform: scale(1.3);
            visibility: hidden;
            opacity: 0;
            transition: all 250ms linear;
        }

        #check+label svg {
            margin-right: 0.5em;
        }

        #check+label svg path {
            transform-origin: 35% 50%;
            transition: transform 166.6666666667ms cubic-bezier(0.06, 0.63, 0.91, 0.66);
        }

        #check:checked+label~aside {
            transform: none;
        }

        #check:checked+label::before {
            left: calc(25vw - 1em);
            transform: scale(1);
            visibility: visible;
            opacity: 1;
        }

        @media (max-width: 576px) {
            #check:checked+label::before {
                left: calc(50vw - 1em);
            }
        }

        #check:checked+label svg #one {
            transform: rotate(45deg);
        }

        #check:checked+label svg #two {
            transform: rotate(-45deg);
        }

        #check:checked+label~article {
            z-index: -1;
            transform: translateX(25vw) scale(0.7);
            border-radius: 0.25em;
            user-select: none;
            pointer-events: none;
        }

        aside,
        article {
            padding: 2.5em 1em 0.25em;
            transition: all 250ms cubic-bezier(0.06, 0.63, 0.91, 0.66);
        }

        aside {
            position: absolute;
            width: 25vw;
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            background-image: linear-gradient(45deg, #3369e7, #2ede98);
            transform: translateX(-100%);
        }

        @media (max-width: 576px) {
            aside {
                width: 50vw;
            }
        }

        article {
            position: relative;
            transform-origin: 10% 50%;
            width: 100%;
            background-image: linear-gradient(45deg, #1cc7d0, #2ede98);
        }

        article .wrapper {
            margin: auto;
            padding: 2em;
            max-width: 90%;
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        article .wrapper h1 {
            margin: 0;
        }

        article .wrapper .footer {
            text-align: right;
        }

4、涨薪专区

有了这个效果,还愁领导不给你涨工资么,有了这个效果,还愁找不到对象?
喜欢博主的话可以上榜一探究竟,博主专设皇榜给大家查阅,喜欢的可以点击此处查看哟。

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

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

相关文章

基于深度学习的高精度打电话检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度打电话检测识别系统可用于日常生活中或野外来检测与定位打电话目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的打电话目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…

Web3通过ganache运行起一个本地虚拟区块链

通过文章 Web3开发准备工作 手把手带你创建自己的 MetaMask 账号大家简单的对网络 有了个比较模糊的概念 不同的网络连接这不同的区块链 那么 我们就要搞清楚 我们切换不同的网络 我们的数字资产是不一样的 在这里 我们需要先安装一个插件工具 ganache 我们先在本地创建一个文…

大学面试三分钟自我介绍七篇

大学面试三分钟自我介绍篇1 尊敬的领导&#xff1a; 您好! 首先对占用您的宝贵时间深表歉意。我叫__&#xff0c;是一名于__年7月毕业的全日制本科大学生。所学专业&#xff1a;中文系汉语言文学。 经过长期努力拼搏&#xff0c;今天我怀着满腔热血站在了人生的又一个起点。在这…

VMware14虚拟机安装Ubuntu16.04 LTS

VMware14虚拟机安装Ubuntu16.04 LTS 一、基本介绍二、vmware下安装ubuntu系统2.1 下载ubuntu客户端镜像2.2 安装及配置2.2.1 安装2.2.2 配置 三、ubuntu系统使用 回到目录   回到末尾 一、基本介绍 对于ubuntu而言&#xff0c;就是linux操作系统的具体&#xff0c;而linux对…

西安石油大学2023年第三届里奇杯编程大赛(初赛)

官方题解地址1v7w &#xff08;郭毅佬&#xff01;&#xff09;&#xff1a;https://www.cnblogs.com/1v7w/p/17437203.html A 签到 描述 你说得对&#xff0c;但是 “ 里奇杯 ” 是西安石油大学计算机协会举办的程序设计竞赛&#xff0c;比赛旨在激发同学们学习程序设计的热…

修罗论坛xiuno源码在线搭建

Xiuno BBS 是一款小巧、稳定、支持在大数据量下仍然保持高负载能力的轻论坛。它只有 20 多个表&#xff0c;源代码压缩后 1M 左右&#xff0c;运行速度非常快&#xff0c;处理单次请求在 0.01 秒级别&#xff0c;在有 APC、Yac、XCache 的环境下可以跑到 0.00x 秒&#xff0c;对…

基于物联网设计的酒驾检测系统(STM32+OneNet)

一、 设计说明 随着社会的发展和人们生活水平的提高,汽车已经成为人们出行的主要代步工具,与此同时,酒后驾车所引发的事故越来越多,对人们的生命安全带来了威胁。为了减少酒后驾车造成危险事故,本文设计了一款能够安装在车辆控制系统上的酒驾监测系统。 本系统主控芯片采…

TOGAF10®标准中文版--(阶段A — 架构愿景)方法

3.5.1 概述 阶段 A 从收到发起组织向架构组织发出的架构工作请求开始。 在TOGAF 标准 —EA能力和治理中讨论了确保公司管理层的适当认可和确认&#xff0c;以及直线管理层的支持和承诺所涉及的问题。 A阶段还定义了架构工作的范围内和范围外的内容以及必须处理的约束条件。在…

给httprunnermanager接口自动化测试平台加点功能(六)

文章目录 一、背景1.1、先看用例编辑/新增页面1.2、效果展示 二、思考三、总结 一、背景 这一讲&#xff0c;是想给维护用例信息留个缺口&#xff0c;咱们知道这个平台是基于httprunner框架开发的&#xff0c;那么在用例结构处可以发现&#xff0c;skip这个关键字&#xff0c;经…

我的创作纪念日_周年复盘

本文框架 前言机缘收获日常憧憬 前言 不知不觉又是一个特殊的纪念日&#xff0c;虽然工作很卷&#xff0c;生活很累&#xff0c;但也能在一次次文章发布及与读者的互动交流中不断充实自己&#xff0c;对于写文章也越来越成为自己的一个习惯&#xff0c;甚至一周不更都会生活感…

嵌入式软件测试笔记6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动?

6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动&#xff1f; 1 简介2 计划与控制阶段2.1 分配任务2.2 整体评审和研究2.3 建立测试基础2.4 确定测试策略2.5 设置组织2.6 列出测试交付清单2.7 指定基础设施2.8 组织管理和控制2.9 编制测试过程进度表2.10 整理测试计划2.11…

(UE4/UE5)Unreal Engine中使用HLOD

本教程将详细介绍在Unreal Engine的不同版本&#xff08;4.20-4.24、4.25-4.26、5.2&#xff09;中如何使用Hierarchical Level of Detail (HLOD)。注意&#xff0c;每个版本中使用HLOD的方法可能会有所不同。 一、预先生成LOD 步骤一&#xff1a;预先生成LOD打开UE4.21&…

深入理解cache对写好代码至关重要

CACHE的一致性 Cache的一致性有这么几个层面 1. 一个CPU的icache和dcache的同步问题 2. 多个CPU各自的cache同步问题 3. CPU与设备&#xff08;其实也可能是个异构处理器&#xff0c;不过在Linux运行的CPU眼里&#xff0c;都是设备&#xff0c;都是DMA&#xff09;的cache同…

商场开盲盒小程序软件

以下是商场开盲盒小程序软件可能具有的界面&#xff1a; 首页&#xff1a;展示热门盲盒产品、促销信息和优惠券等内容&#xff0c;提供快捷购物入口和搜索功能。 盲盒专柜或零售店铺列表&#xff1a;列出商场内所有盲盒专柜或零售店铺的地址和电话号码&#xff0c;帮助…

Typescript 中,这些类型工具真好用

你是否曾经用 TypeScript 写代码&#xff0c;然后意识到这个包没有导出我需要的类型&#xff0c;例如下面这段代码提示 Content 在 example 中不存在&#xff1a; import {getContent, Content} from example const content await getContent() function processContent(conte…

8.2 电压比较器(1)

电压比较器是对输入信号进行鉴幅与比较的电路&#xff0c;是组成非正弦波发生电路的基本单元电路&#xff0c;在测量和控制中有着相当广泛的应用。 一、概述 1、电压比较器的电压传输特性 电压比较器的输出电压 u O u_{\scriptscriptstyle O} uO​ 与输入电压 u I u_{\scr…

软件测试面试一周时间面了6家公司,最终收割3个Offer

上个月花了一周时间面了6家公司&#xff0c;最终收割3个Offer。通过这6次面试&#xff0c;得到的最宝贵的经验是&#xff1a;快刀斩乱麻。展开说就是&#xff1a;给自己一点点压力&#xff0c;在短时间内迅速面试、迅速反馈、迅速提高&#xff0c;然后迅速进入下一场面试。 以…

一文理清最小二乘法估计

1 最小二乘法估计(LS) 1.1 原理与推导 最小二乘法最早是高斯在预估星体轨道时提出来的&#xff0c;后来成为了估计理论的奠基石。考虑如下CAR模型&#xff1a; 其中&#xff1a; 参数估计的任务就是根据输入和输出&#xff0c;估计出a1,a2,----,ana,b1,b2,...,bnb这nanb1个参…

【MySQL数据库】MySQL日志管理、备份与恢复

MySQL日志管理、备份与恢复 一、MySQL日志管理1.1日志存放位置 二、数据备份2.1物理备份与逻辑备份2.2完整备份、差异备份、增量备份2.3常见的备份方法 三、完整备份与恢复3.1物理冷备份与恢复3.2mysqldump 备份3.3mysqldump数据恢复3.4MySQL增量备份3.5MySQL增量恢复 一、MySQ…