隐藏菜单之菜单和搜索

news2024/11/18 21:26:21

先看效果:
在这里插入图片描述
再看代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>菜单</title>
    <style>
        /* css代码开始*/
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background: rgb(235, 234, 234);
            height: 100vh;
            display: grid;
            place-items: center;
        }
        /* 主包装器及其布局 */
        .wrapper {
            width: 200px;
            border-radius: 30px;
            height: 50px;
            background: white;
            box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.281);
            display: flex;
            justify-content: space-evenly;
            align-items: center;
            z-index: 5;
            position: relative;
        }
        .item {
            cursor: pointer;
        }
        .linee {
            width: 20px;
            height: 3px;
            background: rgb(201, 198, 198);
            margin-top: 3px;
            border-radius: 5px;
            transition: all 0.2s;
        }
        .linee1 {
            width: 15px;
            transform: translateX(5px);
        }
        .linee1::before {
            content: "";
            display: block;
            transform: translateX(-5px);
            width: 3px;
            height: 3px;
            background: rgb(201, 198, 198);
            transition: width 0.2s ease 0.1s, transform 0.2s;
        }
        .linee3::after {
            content: "";
            display: block;
            transform: translateX(17px);
            width: 0px;
            height: 3px;
            background: rgb(201, 198, 198);
            transition: width 0.2s ease 0.1s;
        }
        .linee3 {
            width: 13px;
        }
        .gallery {
            display: grid;
            grid-template-columns: repeat(3, 5px);
            grid-auto-rows: 5px;
            grid-gap: 4px;
            transform: translateY(3px);
        }
        .dot {
            border: 1px solid rgb(139, 136, 136);
            border-radius: 50%;
        }
        .add {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            background: rgb(201, 198, 198);
            border: none;
            position: relative;
            z-index: 4;
            transition: all 0.3s ease;
            outline: none;
        }
        .close {
            position: relative;
            left: 35%;
            z-index: 4;
            top: 50%;
        }
        .line {
            position: absolute;
            width: 10px;
            height: 2px;
            background: rgb(255, 255, 255);
            transition: all 0.2s;
        }
        .line1 {
            transform: rotate(0deg);
        }
        .line2 {
            transform: rotate(90deg);
        }
        .search {
            position: absolute;
            top: 0;
            left: 4%;
            z-index: 0;
            width: 0px;
            height: 38px;
            border-radius: 30px;
            border: none;
            color: white;
            background: rgb(253, 95, 95);
            box-sizing: border-box;
            padding-left: 35px;
            transition: all 0.3s ease;
            outline: none;
            box-shadow: none;
        }
        ::placeholder {
            font-weight: bold;
            color: white;
        }
        .circle {
            width: 38px;
            height: 38px;
            background: rgb(201, 198, 198);
            top: 0;
            left: 0;
            position: absolute;
            z-index: 3;
            border-radius: 50%;
            cursor: pointer;
            transition: background 0.5s;
        }
        .nav-items {
            width: 38px;
            height: 38px;
            background: rgb(246, 54, 54);
            color: white;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            position: absolute;
            top: 0;
            left: 0;
            cursor: pointer;
            box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.212);
            transform: scale(0);
            transition: transform 0.1s cubic-bezier(0.23, -0.47, 0.58, -0.63);
        }
        .nav-items:hover {
            transform: scale(1.1);
            transition-timing-function: 0.1s;
        }
        .items1 {
            top: -100%;
            left: 5%;
        }
        .items2 {
            top: -50%;
            left: -23%;
            transition-delay: 0.1s;
        }
        .items3 {
            top: 80%;
            left: -23%;
            transition-delay: 0.2s;
        }
        .items4 {
            top: 130%;
            left: 5%;
            transition-delay: 0.3s;
        }
        .box {
            width: 100%;
            position: absolute;
            top: 110%;
            left: 0;
            height: 0px;
            overflow: hidden;
            background: white;
            display: grid;
            grid-gap: 10px;
            transition: height 0.1s cubic-bezier(0.075, 0.82, 0.165, 1);

            z-index: 0;
        }
        .box-line {
            width: 100px;
            height: 10px;
            background: rgb(201, 198, 198);
            border-radius: 10px;
            opacity: 0;
            z-index: 0;
            transition: opacity 0s;
        }
        .box-line:nth-child(even) {
            width: 130px;
        }
        .effect {
            z-index: 3;
            border-radius: 50%;
            width: 200vmax;
            height: 200vmax;
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0);
            background: rgb(246, 54, 54);
            transition: transform 0.4s;
        }
        /* 切换类 */
        .box-show {
            height: 150px;
            box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.226);
            padding: 10px;
            transition-duration:0.2s;
        }
        .box-line-show {
            opacity: 1;
            transition-duration:.1s;
        }
        footer{
            display:flex;
            position:fixed;
            top:90%;
            left:50%;
            transform:translate(-50%,-50%);

        }
        footer a{
            color:gray;
            margin-left:30px;
            font-size:1.8rem;}
        a:nth-child(1):hover{
            color:tomato;
        }
        a:nth-child(2):hover{
            color:skyblue;
        }
        .color {
            background: rgb(246, 54, 54);
        }
        .show-menu {
            transform: scale(1);
            transition: transform 0.5s cubic-bezier(0.23, -0.47, 0.58, -0.63);
        }
        .go {
            transform: translateX(-125px);
        }
        .search-focus {
            width: 180px;
            left: 20%;
            top: 1%;
            height: 38px;
            background: rgb(253, 95, 95);
        }
        .move {
            transform: rotate(45deg);
        }
        .mov {
            transform: rotate(-45deg);
        }

        .big {
            transform: translate(-50%, -50%) scale(1);
        }
        /* 悬停效应 */
        .menu:hover .linee1 {
            width: 10px;
            transform: translateX(0px);
        }
        .menu:hover .linee1::before {
            width: 0px;
            transform: translateX(0px);
        }
        .menu:hover .linee3 {
            width: 15px;
        }
        .menu:hover .linee3::after {
            content: "";
            display: block;
            transform: translateX(17px);
            width: 3px;
            height: 3px;
            background: rgb(201, 198, 198);
            transition: width 0.2s ease 0.1s;
        }
        .gallery:hover .dot1 {
            animation: jump 0.4s ease 1;
        }
        .gallery:hover .dot2 {
            animation: jump 0.4s ease 0.1s 1;
        }
        .gallery:hover .dot3 {
            animation: jump 0.4s ease 0.2s 1;
        }
        .gallery:hover .dot4 {
            animation: jump 0.4s ease 0.3s 1;
        }
        .gallery:hover .dot5 {
            animation: jump 0.4s ease 0.4s 1;
        }
        .gallery:hover .dot6 {
            animation: jump 0.4s ease 0.5s 1;
        }
        @keyframes jump {
            50% {
                transform: translateY(-4px);
                border-color: rgb(117, 117, 117);
            }
            100% {
                transform: translateY(0px);
                border-color: rgb(119, 118, 118);
            }
        }
        .close {
            width: 10px;
        }

    </style>
</head>
<body>
<div class="wrapper">
    <div class="item menu">
        <div class="linee linee1"></div>
        <div class="linee linee2"></div>
        <div class="linee linee3"></div>
    </div>
    <div class="item gallery">
        <div class="dot dot1"></div>
        <div class="dot dot2"></div>
        <div class="dot dot3"></div>
        <div class="dot dot4"></div>
        <div class="dot dot5"></div>
        <div class="dot dot6"></div>
    </div>
    <button class="item add">
        <div class="circle">
            <div class="close">
                <div class="line line1"></div>
                <div class="line line2"></div>
            </div>
        </div>
        <input type="search" placeholder="search" class="search" />

    </button>

    <div class="nav-items items1">
        <i class="fas fa-home"></i>
    </div>
    <div class="nav-items items2">
        <i class="fas fa-camera"></i>
    </div>
    <div class="nav-items items3">
        <i class="fas fa-folder"></i>
    </div>
    <div class="nav-items items4">
        <i class="fas fa-heart"></i>
    </div>
    <div class="box">
        <div class="box-line box-line1"></div>
        <div class="box-line box-line2"></div>
        <div class="box-line box-line3"></div>
        <div class="box-line box-line4"></div>
    </div>
</div>

<div class="effect"></div>

<footer>
    <a href="https://blog.csdn.net/qq_35241329?spm=1010.2135.3001.5343" target="_blank"
    >TiMi先生
    ></a>
</footer>
</body>
<script>


    /* 搜索栏 */
    document.querySelector(".circle").addEventListener("click", () => {
        for (let i = 0; i <= 3; i++) {
            document
                .getElementsByClassName("nav-items")
                [i].classList.remove("show-menu");
            document
                .getElementsByClassName("box-line")
                [i].classList.remove("box-line-show");
        }
        document.querySelector(".box").classList.remove("box-show");
        document.querySelector(".add").classList.toggle("go");
        document.querySelector(".search").classList.toggle("search-focus");
        document.querySelector(".search").focus();
        document.querySelector(".circle").classList.toggle("color");
        document.querySelector(".line1").classList.toggle("move");
        document.querySelector(".line2").classList.toggle("mov");
        document.querySelector(".effect").classList.toggle("big");
    });
    /* 菜单 */
    document.querySelector(".menu").addEventListener("click", () => {
        for (let i = 0; i <= 3; i++) {
            document.querySelector(".box").classList.remove("box-show");
            document
                .getElementsByClassName("nav-items")
                [i].classList.toggle("show-menu");
            document
                .getElementsByClassName("box-line")
                [i].classList.remove("box-line-show");
        }
    });

    document.querySelector(".gallery").addEventListener("click", () => {
        document.querySelector(".box").classList.toggle("box-show");
        for (let i = 0; i <= 3; i++) {
            document
                .getElementsByClassName("box-line")
                [i].classList.toggle("box-line-show");
            document
                .getElementsByClassName("nav-items")
                [i].classList.remove("show-menu");
        }
    });
</script>
</html>

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

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

相关文章

人工智能(pytorch)搭建模型15-手把手搭建MnasNet模型,并实现模型的训练与预测

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型15-手把手搭建MnasNet模型&#xff0c;并实现模型的训练与预测&#xff0c;本文将介绍MnasNet模型的原理&#xff0c;并使用PyTorch框架构建一个MnasNet模型用于图像分类任务&#xff0c;…

1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume

1、数据仓库概念 数据仓库&#xff08; Data Warehouse &#xff09;&#xff0c;是为企业制定决策&#xff0c;提供数据支持的。可以帮助企业&#xff0c;改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等。 业务数…

Linux——使用第三方库链接的方式——动态式

回顾上文&#xff1a; (122条消息) Linux使用第三方库链接的使用方式——静态式_橙予清的zzz~的博客-CSDN博客https://blog.csdn.net/weixin_69283129/article/details/131414804?spm1001.2014.3001.5502 上篇文章中&#xff0c;我讲到了关于链接第三方库作为静态库的使…

股票技术分析方法综述

文章目录 K线均线MACDKDJ和RSIBOLL线趋势理论、支撑位和压力位形态理论量价关系理论道氏理论波浪理论江恩理论缠论自定义指标 K线 K线的组合形态是K线技术分析中的重要部分&#xff0c;包括早晨之星、黄昏之星、红三兵、黑三兵等。 早晨之星&#xff1a;由三根K线组成&#x…

OpenGL 抗锯齿

1.简介 你可以看到&#xff0c;我们只是绘制了一个简单的立方体&#xff0c;你就能注意到它存在锯齿边缘。 可能不是非常明显&#xff0c;但如果你离近仔细观察立方体的边缘&#xff0c;你就应该能够看到锯齿状的图案。如果放大的话&#xff0c;你会看到下面的图案&#xff1a…

家校互动、班级管理系统

最近做了一款使用若依开源框架搭建的一款家校互动、班级管理的平台&#xff0c;采用uniapp作为APP端&#xff0c;原生小程序作为小程序的家长端。

软件测试的概念与过程(软件测试的历史、概念、结构、过程)

软件测试的概念与过程----软件测试的历史 软件测试的历史软件的概念软件的结构软件测试的过程 软件测试的历史 1、早期的的软件开发过程中&#xff0c;将测试“调试”&#xff0c;目的是纠正软件已经知道的故障&#xff0c;常常有开发人员自己去完成这部分工作。 2、1957年&…

使用数据集工具

一.数据集工具介绍 HuggingFace通过API提供了统一的数据集处理工具&#xff0c;它提供的数据集如下所示&#xff1a; 该界面左侧可以根据不同的任务类型、类库、语言、License等来筛选数据集&#xff0c;右侧为具体的数据集列表&#xff0c;其中有经典的glue、super_glue数据集…

Unity | HDRP高清渲染管线学习笔记:材质系统Lit着色器

目录 一、Lit着色器 1. Surface Options 2. Surface Inputs&#xff08;表面输入&#xff09; 3. Transparency Inputs 二、HDRP渲染优先级 我们可以把现实世界中的物体分成不透明物体和透明物体&#xff08;其中包括透明或者半透明&#xff09;。在实时渲染时&#xff0c…

Debian二次开发网关支持Docker+RS485+网口

随着物联网技术的不断发展&#xff0c;瑞芯微边缘计算网关作为一种集成多种接口和功能的智能网关&#xff0c;逐渐成为了物联网领域中的热门产品。本文将详细介绍瑞芯微边缘计算网关的特点和优势&#xff0c;并探讨其在实际应用中的广泛应用。 瑞芯微Linux系统边缘计算网关是一…

【Java】 Java 私有接口方法的使用

本文仅供学习参考&#xff01; 相关教程地址&#xff1a; https://www.baeldung.com/java-interface-private-methods https://www.geeksforgeeks.org/private-methods-java-9-interfaces/ https://www.runoob.com/java/java9-private-interface-methods.html 接口是定义一组方…

java之路—— SpringMVC的常用注解解析以及作用、应用

创作不易&#xff0c;真的希望能给个免费的小 文章目录 1、Controller2、RequestMapping3.GetMapping、PostMapping、PutMapping、DeleteMapping4. RequestParam5.PathVariable6.RequestHeader7.CookieValue8.RequestBody9.ResponseBody10.SessionAttribute11.ControllerAdvice…

二层、三层交换机是什么?有什么区别?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 本文将讲解二层交换机和三层交换机是什么&#xff0c;以及他们的区别。 目录 一、二层交换机是什么&#xff1f; 二、二层交换机的主…

本地生活多城市合伙人系统开发

本地生活多城市合伙人项目是一种基于本地生活服务的创业项目&#xff0c;旨在为各个城市的居民提供方便、实惠、高品质的生活服务。该项目通过招募多个城市的合伙人&#xff0c;建立完整的本地生活服务平台和供应链体系&#xff0c;覆盖不同类型的本地生活服务&#xff0c;如餐…

Nginx的Rewrite(地址重定向)

目录 前言 一、Rewrite 跳转场景 二、Rewrite 跳转实现 三、Rewrite实际场景 3.1Nginx跳转需求的实现方式 3.2rewrite放在 server{}&#xff0c;if{}&#xff0c;location{}段中 3.3对域名或参数字符串 四、Rewrite正则表达式 五、Rewrite语法格式 5.1rewrite语法格式…

互联网常见架构接口压测性能分析及调优手段建议

目录 互联网常见架构接口压测性能分析及调优手段建议 1 接口名称: 获取列表 1.1 压测现象:单台tps700多&#xff0c;应用cpu高负载 1.1.1 问题分析: 1.1.2 改进措施: 1.1.3 改进效果: 1.2 压测现象&#xff1a;数据库资源利用率高 1.2.1 问题分析: 1.2.2 改进措施: 1.2.3 改…

SciencePub学术 | 计算机科学类重点SCIEEI征稿中

SciencePub学术 刊源推荐:计算机科学类重点SCIE&EI征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机科学类重点SCIE&EI 【期刊简介】IF&#xff1a;3.0-3.5&#xff0c;JCR 2区&#xff0c;中科院4区&#xff1b; 【检…

使用R绘制气泡图、带有显著性标记的热力图、渐变曲线图

大家好&#xff0c;我是带我去滑雪&#xff01; 一幅精美的科研绘图会有诸多益处&#xff0c;精美的图像可以更好地传达研究结果和数据分析的重要信息。通过使用清晰、直观和易于理解的图像&#xff0c;可以更好地向读者展示研究的发现&#xff0c;有助于读者理解和解释数据。还…

JAVA开发(记一次504 gateway timeout错误排查过程)

一、问题与背景&#xff1a; 最近在发布一个web项目&#xff0c;在测试环境都是可以的&#xff0c;发布到生产环境通过IP访问也是可以的&#xff0c;但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通&#xff0c;域名却不行&…

如何在矩池云上运行 AI 图像编辑工具 DragGAN

5 月&#xff0c;DragGAN 横空出世&#xff0c;在开源代码尚未公布前&#xff0c;就在Github上斩获近 20000 Star&#xff0c;彼时&#xff0c;页面上只有效果图和一句“Code will be released in June”&#xff0c;然而这也足够带给人们无限期待。 在6月末&#xff0c;在若干…