day45-Netflix Mobile Navigation(左边侧边栏动态导航)

50 天学习 50 个项目 - HTMLCSS and JavaScript

day45-Netflix Mobile Navigation(左边侧边栏动态导航)

效果

在这里插入图片描述

在这里插入图片描述

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog=="crossorigin="anonymous" /><link rel="stylesheet" href="style.css" /><title>Netflix Mobile Navigation</title>
</head><body><!-- 字体图标,点击侧边导航显示 --><button class="nav-btn open-btn"><i class="fas fa-bars"></i></button><!-- logo --><img src="https://source.unsplash.com/random" alt="Logo" class="logo"><!-- 文本 --><p class="text">手机导航</p><!-- 左部侧边导航 默认隐藏 --><div class="nav nav-black"><!-- 红 --><div class="nav nav-red"><!-- 白 --><div class="nav nav-white"><!-- 字体图标,点击关闭侧边导航 --><button class="nav-btn close-btn"><i class="fas fa-times"></i></button><!-- logo --><img src="https://source.unsplash.com/random" alt="Logo" class="logo"><!-- 导航列表 --><ul class="list"><li><a href="#">团队</a></li><li><a href="#">位置</a></li><li><a href="#">Netflix的生活</a></li><li><ul><li><a href="#">Netflix文化备忘录</a></li><li><a href="#">工作与生活的平衡</a></li><li><a href="#">包容性与多样性</a></li><li><a href="#">博客</a></li></ul></li></ul></div></div></div><script src="script.js"></script>
</body></html>

style.css

@import url('https://fonts.googleapis.com/css?family=Muli&display=swap');* {box-sizing: border-box;
}body {font-family: 'Muli', sans-serif;/* 子元素竖直居中 */display: flex;flex-direction: column;align-items: center;justify-content: center;height: 100vh;
}.logo {width: 150px;
}/* 点击按钮 */
.nav-btn {border: none;background-color: transparent;cursor: pointer;font-size: 20px;
}/* 打开按钮 固定定位 */
.open-btn {position: fixed;top: 10px;left: 10px;
}/* 导航 固定定位 */
.nav {position: fixed;top: 0;left: 0;height: 100vh;/* 通过移动隐藏 三层导航*/transform: translateX(-100%);transition: transform 0.3s ease-in-out;
}/* visible 不隐藏 通过js控制 */
.nav.visible {transform: translateX(0);
}/* 第一层背景 */
.nav-black {background-color: rgb(71, 209, 117);max-width: 480px;min-width: 320px;transition-delay: 0.4s;
}.nav-black.visible {transition-delay: 0s;
}/* 第二层背景 */
.nav-red {background-color: rgb(9, 181, 229);width: 95%;transition-delay: 0.2s;
}.nav-red.visible {transition-delay: 0.2s;
}/* 第三层背景 */
.nav-white {background-color: #fff;width: 95%;padding: 40px;position: relative;transition-delay: 0s;
}.nav-white.visible {transition-delay: 0.4s;
}/* 关闭按钮 */
.close-btn {opacity: 0.3;position: absolute;top: 40px;right: 30px;
}/* 导航列表 */
.list {list-style-type: none;padding: 0;
}.list li {margin: 20px 0;
}.list li a {color: rgb(34, 31, 31);font-size: 14px;text-decoration: none;
}.list ul {list-style-type: none;padding-left: 20px;
}

script.js

// 重点 flex position fixed transform transition transition-delay 通过延迟过渡展示动态效果
// 1.获取元素节点
const open_btn = document.querySelector('.open-btn')//打开按钮
const close_btn = document.querySelector('.close-btn')//关闭按钮
const nav = document.querySelectorAll('.nav')//三层导航
// 2.绑定事件 打开
open_btn.addEventListener('click', () => {nav.forEach(nav_el => nav_el.classList.add('visible'))
})
// 隐藏
close_btn.addEventListener('click', () => {nav.forEach(nav_el => nav_el.classList.remove('visible'))
})

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

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

相关文章

k8s集群安装v1.20.9

参考网上资料并将异常问题解决&#xff0c;经测试可正常安装集群。 1.我的环境准备 本人使用vmware pro 17新建三个centos7虚拟机&#xff0c;每个2cpu&#xff0c;20GB磁盘存储&#xff0c;内存2GB&#xff0c;其中主节点的内存3GB&#xff0c;可使用外网. 2.所有节点安装D…

33. 本地记事本

本地记事本 html部分 <button class"add"><i class"iconfont icon-jiahao"></i> </button>css部分 *{margin: 0;padding: 0; } body{background-color: #7bdaf3;display: flex;padding-top: 3rem;flex-wrap: wrap; } .add{pos…

每日一题——删除有序数组中的重复项

删除有序数组中的重复项 题目链接 注&#xff1a;本题所采用的方法是建立在移除元素的基础之上的&#xff0c;如果大家对双指针的方法不大了解&#xff0c;或者不会做《移除元素》这一题&#xff0c;建议先去看看&#x1f449;传送门 具体步骤 定义两个指针slow和fast&#…

【计算机网络】传输层协议 -- UDP协议

文章目录 1. 传输层相关知识1.1 端口号1.2 端口号范围划分1.3 知名端口号1.4 一些相关命令 2. UDP协议2.1 UDP协议格式2.2 UDP协议的特点2.3 什么是面向数据报2.4 UDP的缓冲区2.5 UDP使用注意事项2.6 基于UDP的应用层协议 1. 传输层相关知识 传输层是计算机网络中的一个重要层…

【如何训练一个中英翻译模型】LSTM机器翻译模型部署之onnx(python)(四)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何…

云原生架构

1. 何为云原生&#xff1f; 很多IT业内小伙伴会经常听到这个名词&#xff0c;那么什么是云原生呢&#xff1f;云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。 当今时代&#xff0c;众多企业希望构建高度可扩展、灵活且有弹性的应用程序&#xff0c;以便能够快…

OAID学习

为了在包含用户隐私的同时&#xff0c;让广告商可以了解用户在应用中的行为&#xff0c;安卓系统提供了OAID&#xff08;Open Anonymous Device Identifier&#xff09;用来跟踪设备。OAID是一种非永久的、近似唯一的设备标识符&#xff0c;由字母和数字组成&#xff0c;长度不…

13 亿美金买个寂寞?No!AI 时代的数据行业蓄势待发

6月底&#xff0c;全球数据分析领域彻底炸锅了。 两大数据分析企业Databricks和Snowflake纷纷将目光瞄准了AI大模型。要知道&#xff0c;这两位对手平时没少对台戏&#xff0c;为性能、产品和技术经常开撕。但在今年的自家大会上&#xff0c;两家企业却出奇的一致&#xff0c;…

用sqoop导出hive parquet 分区表到mysql

用sqoop导出hive parquet 分区表到mysql 确保你已经安装并配置好了Sqoop工具&#xff0c;并且可以连接到Hadoop集群和MySQL数据库。 创建一个MySQL表来存储导出的数据。请确保MySQL表的结构与Hive Parquet分区表的结构匹配。 使用Sqoop的export命令来执行导出操作。以下是一…

Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述动态 sql 的执行原理不?

OGNL表达式 OGNL&#xff0c;全称为Object-Graph Navigation Language&#xff0c;它是一个功能强大的表达式语言&#xff0c;用来获取和设置Java对象的属性&#xff0c;它旨在提供一个更高的更抽象的层次来对Java对象图进行导航。 OGNL表达式的基本单位是"导航链"&a…

云安全攻防(二)之 云原生安全

云原生安全 什么是云原生安全&#xff1f;云原生安全包含两层含义&#xff1a;面向云原生环境的安全和具有云原生特征的安全 面向云原生环境的安全 面向云原生环境的安全的目标是防护云原生环境中的基础设施、编排系统和微服务系统的安全。这类安全机制不一定会具有云原生的…

关于vue3 按钮权限的控制,使用自定义指令来实现

关于vue3 按钮权限的控制&#xff0c;使用自定义指令来实现 需求 根据不同的权限展示或者隐藏按钮 实现 使用自定义指令来控制按钮&#xff0c;当有权限时就显示&#xff0c;没有就移除元素 代码 src/directives/components/button-permission.ts components文件下可以创…

flutter开发实战-请求dio设置Cookie

flutter开发实战-请求dio设置Cookie 在最近开发中碰到了需要websocket长链接收到响应的auth&#xff0c;在之后的请求中需要将其设置为cookie中。 如Cookie:authDHSfQQSAXf89xZqJTLdEDVI2hwzc7p2lUmSNNdUSlgW2MyfQINpYr7jUbkX/; 设置cookie用到了dio_cookie_manager组件 一、…

Java 设计模式 - 简单工厂模式 - 创建对象的简便之道

简单工厂模式是一种创建型设计模式&#xff0c;它提供了一种简单的方式来创建对象&#xff0c;而无需暴露对象创建的逻辑。在本篇博客中&#xff0c;我们将深入了解简单工厂模式的概念、实现方式以及如何在Java中使用它来创建对象。 为什么使用简单工厂模式&#xff1f; 在软…

JMM的特征:可见性,有序性,原子性

1.volatile关键字(保证可见性、有序性) volatile关键字可以有效的保证可见性和有序性。一旦一个共享变量被volatile修饰后&#xff0c;保证了线程在工作内存中对变量进行操作的可见性&#xff0c;一个线程修改了其值&#xff0c;对其他线程来说是立即可见的。而且禁止对程序的…

【无标题】深圳卫视专访行云创新马洪喜:拥抱AI与云原生,深耕云智一体化创新

人工智能&#xff08;AI&#xff09;是引领新一轮科技革命和产业变革的重要驱动力。因此&#xff0c;深圳出台相关行动方案&#xff0c;统筹设立规模1,000亿元的人工智能基金群&#xff0c;引导产业集聚培育企业梯队&#xff0c;积极打造国家新一代人工智能创新发展试验区和国家…

【高压架构】AP5199S LED平均电流型恒流驱动IC 0.01调光 景观舞台汽车灯驱动照明

说明 AP5199S 是一款外围电路简单的多功能平均电流型 LED 恒流驱动器&#xff0c;适用于宽电压范围的非隔离式大功率恒流 LED 驱动领域。芯片 PWM 端口支持超小占空比的 PWM 调光&#xff0c;可响应 60ns 脉宽。为客户提供解决方案&#xff0c;限度地发挥灯具优势&#xff0c;…

解锁ChatGPT的潜能:API调用中运用聊天记录

在过去我通过chatgpt调用api时只知道进行孤立的调用&#xff0c;即这一次调用时&#xff0c;chatgpt并没有拿到上一次调用的上下文&#xff0c;这无疑损失很大。通过探索&#xff0c;我知道了如何通过修改messages这个字典类型的list来告知chatgpt我和它的聊天历史。 关键代码…

shell中按照特定字符分割字符串,并且在切分后的每段内容后加上特定字符(串),然后再用特定字符拼接起来

文件中的内容&#xff0c;可以这么写&#xff1a; awk -F, -v OFS, {for(i1;i<‌NF;i){$i$i"_suffix"}}1 input.txt-F,&#xff1a;设置输入字段分隔符为逗号&#xff08;,&#xff09;&#xff0c;这将使awk按照逗号分割输入文本。-v OFS‘,’&#xff1a;设置输…

【Golang】Golang进阶系列教程--为什么 Go 不支持 []T 转换为 []interface

文章目录 前言官方解释内存布局程序运行中的内存布局通用方法 前言 在 Go 中&#xff0c;如果 interface{} 作为函数参数的话&#xff0c;是可以传任意参数的&#xff0c;然后通过类型断言来转换。 举个例子&#xff1a; package mainimport "fmt"func foo(v inter…