在移动设备或桌面导航栏时显示汉堡菜单

2024-02-23

我正在进行移动优先设计,并使用 CSS 和 jQuery 制作了一个我非常喜欢的下拉汉堡菜单,但我想做的是,当页面显示在桌面上时,使该汉堡菜单消失,并替换为常规的水平菜单导航栏。我能够使菜单响应,所以至少有一个水平导航栏可以在桌面上下拉(而不是像移动设备上那样的长菜单列表),但我根本不希望它下拉 - 我希望它完全取代那个汉堡图标。我不知道 Bootstrap(我是新人),但是任何使用 html、css 和 jQuery 的建议都会很棒!谢谢你!

这是我的代码:

HTML:

<!DOCTYPE html>

<html lang="en">

<head>
<meta charset="utf-8">
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");</script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

<title>hamburgers</title>
</head>

<body>
    <header>

     <span>Shine Design</span>
     <div id="nav-icon4">
      <span></span>
      <span></span>
      <span></span>
     </div>

    </header>

    <div class="menu">
     <ul>
      <a href="#">
       <li>LINK ONE</li>
      </a>
      <a href="#">
       <li>LINK TWO</li>
      </a>
      <a href="#">
       <li>LINK THREE</li>
      </a>
      <a href="#">
       <li>LINK FOUR</li>
      </a>
      <a href="#">
       <li>LINK FIVE</li>
      </a>
     </ul>
    </div>

  </body>
 </html>

JS:

$(document).ready(function(){
  $('#nav-icon4').click(function(){
    $(this).toggleClass('open');
  });
});

CSS:

 @media only screen and (min-width: 300px) {
  #nav-icon4 {
  width: 35px;
  height: 25px;
  float: right;
  margin-top: 15px;
  margin-right: 30px;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: cell; 
 }

#nav-icon4 span {
 display: block;
 position: absolute;
 height: 5px;
 width: 100%;
 background: darkred;
 border-radius: 7px;
 opacity: 2;
 left: 0;
 -webkit-transform: rotate(0deg);
 -moz-transform: rotate(0deg);
 -o-transform: rotate(0deg);
 transform: rotate(0deg);
 -webkit-transition: .25s ease-in-out;
 -moz-transition: .25s ease-in-out;
 -o-transition: .25s ease-in-out;
 transition: .25s ease-in-out;
}

#nav-icon4 span:nth-child(1) {
 top: 0px;
 -webkit-transform-origin: left center;
 -moz-transform-origin: left center;
 -o-transform-origin: left center;
 transform-origin: left center;
}

#nav-icon4 span:nth-child(2) {
 top: 10px;
 -webkit-transform-origin: left center;
 -moz-transform-origin: left center;
 -o-transform-origin: left center;
 transform-origin: left center;
}

#nav-icon4 span:nth-child(3) {
 top: 20px;
 -webkit-transform-origin: left center;
 -moz-transform-origin: left center;
 -o-transform-origin: left center;
 transform-origin: left center;
}

#nav-icon4.open span:nth-child(1) {
 -webkit-transform: rotate(45deg);
 -moz-transform: rotate(45deg);
 -o-transform: rotate(45deg);
 transform: rotate(45deg);
 top: 0;
 left: 6px;
}

#nav-icon4.open span:nth-child(2) {
 width: 0%;
 opacity: 0;
}

#nav-icon4.open span:nth-child(3) {
 -webkit-transform: rotate(-45deg);
 -moz-transform: rotate(-45deg);
 -o-transform: rotate(-45deg);
 transform: rotate(-45deg);
 top: 25px;
 left: 6px;
}

body {
  font-family: 'Noto Sans', sans-serif;
  margin: 0;
  width: 100%;
  height: 100vh;
  background: #ffffff;
   background-color: black;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

header {
  width: 100%;
  background: #ffffff;
  position: fixed;
  height: 60px;
  line-height: 60px;
  border-bottom: 1px solid #dddddd;
  display: inline-block;
  font-size: 2.1em;
  padding-left: 10px;
}

.menu {
  z-index: 1000000;
  display: none;
  font-weight: bold;
  font-size: 1.2em;
  width: 100%;
  background: #f1f1f1;
  position: fixed;
  margin-top: 60px;
  text-align: center;
  color: black;
 }

.menu ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  list-style-image: none;
  border-top: #dddddd 1px solid;
 }

.menu li {
  display: block;
  padding: 15px 0 15px 0;
  border-bottom: #dddddd 1px solid;
 }

.menu li:hover {
  display: block;
  background: #585858;
  padding: 15px 0 15px 0;
  border-bottom: #dddddd 1px solid;
  cursor: crosshair;
 }

.menu ul li a {
  text-decoration: none;
  margin: 0px;
  color: black;
 }

.menu ul li a:hover {
  color: white;
  text-decoration: none;
 }

.menu a {
  text-decoration: none;
  color: black;
 }

.menu a:hover {
  text-decoration: none;
  color: white;
  }
 }


@media only screen and (min-width: 601px) {    
   header {
    font-size: 1.5em;
 }

   ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
 }

  li {
    float: right;
    margin-left: 15px;
    margin-right: 25px;
 }

  li a {
    display: block;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
 }
 .menu {
    font-size: .8em;
  }
 }

如果你是新手,帮自己一个忙,学习引导程序,它会让这种事情变得非常简单,并阻止你重新发明轮子。

首先看这里...https://getbootstrap.com/examples/navbar/ https://getbootstrap.com/examples/navbar/和这里:https://getbootstrap.com/components/#navbar https://getbootstrap.com/components/#navbar

要执行您想要的操作,您需要设置 CSS 媒体查询才能正确显示。这正是引导程序所做的,因此如果您坚持自己动手,请从了解媒体断点开始。

/* Custom, iPhone Retina */ 
@media only screen and (min-width : 320px) {

}

/* Extra Small Devices, Phones */ 
@media only screen and (min-width : 480px) {

}

/* Small Devices, Tablets */
@media only screen and (min-width : 768px) {

}

/* Medium Devices, Desktops */
@media only screen and (min-width : 992px) {

}

/* Large Devices, Wide Screens */
@media only screen and (min-width : 1200px) {

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在移动设备或桌面导航栏时显示汉堡菜单 的相关文章

随机推荐

  • 即使观察者被删除,通知观察者也会被多次调用

    当应用程序处于后台模式或手机处于睡眠状态并且收到 VoIP 推送时 AppDelegate 中的以下函数会引导用户 到UserTableViewController在应用程序中 并发布通知 viewDidLoad 中的通知观察者UserTa
  • 如何应对僵尸网络和自动提交

    短篇故事 我有一个网络应用程序 它具有巨大的参与动机 因此 我们正成为脚本编写者和机器人的重点攻击目标 根据提交内容的 IP 地址 超过 1000 个 并且还在不断增长 没有任何模式 我倾向于相信提交内容是由机器人网络生成的 更糟糕的是 控
  • 如何在 Firefox 附加 SDK 的 pageWorker 中加载多个 URL?

    使用以下示例 我可以从一个 URL 获取第一段 即ContentURL ex http www example com main js var getFirstParagraph var paras document getElements
  • 如何随机选择列表中的值?

    我正在使用Python 2 7 需要明确的是 我不想随机化列表中的项目 我想让某些字符串根本不显示 例如 r red b blue y yellow rc random colour myColours rc rc rc print myC
  • 无效过滤器:每个查询只能有一个属性具有不等式过滤器(>=、<=、>、<)

    我有一些可以在某些时段预订的商品 例如 一个网球场 因此 每个项目都有许多关联的可用时段 每个可用时段由开始时间和结束时间定义 开始时间和结束时间被定义为日期时间对象 因此从 09 00 11 30 的可用时段存储为例如 2013 12 1
  • 在 ASP.NET 应用程序之间传递会话数据

    我们将多个 ASP NET 应用程序部署到几台服务器上 是否有一种标准方法可以重用会话数据或其他一些方法 以便在用户已经通过身份验证的情况下从一个应用程序移动到另一个应用程序时不需要登录到下一个应用程序 我希望有一种你们知道的最佳实践方法
  • 在express js中向同一服务器上的端点发出请求

    在 Express js 服务器上处理请求时 我想调用同一服务器上的端点以填充部分响应 有没有办法可以调用同一服务器上的端点 就像是 app handle abc headers params type GET function err r
  • 如何显示来自搅拌机脚本的消息?

    有没有办法显示一个简单的消息框 其中包含来自搅拌机脚本的文本 例如 如果我在执行过程中遇到错误 Update 该链接不再正式存在 我停止了 Blender 的开发 旧的 2 5 食谱仍然可以在互联网档案馆中找到 https web arch
  • 警告:尝试在其视图不在窗口层次结构中的 * 上呈现 * - swift

    我试图呈现一个ViewController if数据模型中存在任何已保存的数据 但我收到以下错误 警告 尝试在 其视图不在窗口层次结构中呈现 相关代码 override func viewDidLoad super viewDidLoad
  • typescript 自动导入在 Mac 上不起作用

    我有一个项目 我正在添加一些打字稿 但打字稿不会自动导入 我不明白为什么 请参阅下面我的文件结构 tsconfig 和示例 ts配置 compilerOptions target es6 module commonjs declaratio
  • 将列中的 count 个元素插入 R 中的表中

    我在 R 中工作 我有一个矩阵A B and NA值 我想计算有多少A or B or NA每列中的值并将结果插入到表中 我使用下面的代码来计算A B and NA mydata lt matrix c rep A 8 rep B 2 re
  • 在 pydantic 日期时间字段中指定时区 [Python]

    我有一个模型 其中定义了日期时间类型字段 如下所示 class DamBaseModel BaseModel class Config allow population by field name True use enum values
  • Spring REST 中的 SSE 实现

    有人可以提供使用 Spring Rest 的 SSE 服务器发送事件 示例吗 基本上我有一个请求 它的响应将由服务器以多个块的形式发送 我希望在 Spring REST Api 中实现服务器和客户端 而不需要像 jersey 这样的第三方
  • 在我的 iOS 应用程序中添加 PayPal pod 后收到 UIWebview api 弃用消息

    我正在构建一个 iOS 应用程序 并在特定的构建版本上添加了 PayPal pod 然后 当我提交该应用程序进行试飞时 我得到了UIWebview API 弃用消息 ITMS 90809 我正在使用 pod PayPal iOS SDK 进
  • 使用 servlet 获取上下文路径

    jboss web xml 中的上下文路径被提到为 Test 但我的战争文件名是Test 0 0 1 我需要使用这个战争文件名HttpServlet 请告诉我函数名称 我试过getContextPath 但它返回测试 谢谢 以下是可用功能的
  • TypeScript:EventEmitter 子类事件的专用签名

    我有一个基类EventEmitter 其中有on将处理程序绑定到特定事件的方法 class EventEmitter on event string handler Function add handler internally prote
  • 如何在 Chrome 开发工具中显示来自特定域的流量

    我只是想知道是否可以仅在 Chrome 开发工具的 网络 选项卡中显示来自特定域的流量 是的 您可以通过输入domain localhost在过滤框中进行过滤localhost域 例如 Notes 过滤器框具有自动完成功能可以帮助您 这就是
  • 如何将TFLite模型转换为量化TFLite模型?

    我有一个 tflite 文件 我想对其进行量化 如何将TFLite模型转换为量化TFLite模型 请注意 您需要源模型来对其进行量化 由于 tflite 模型格式的限制 无法对其进行量化 您的源模型可以是 TF saving model K
  • 跨版本后缀冲突(sbt、Scala-STM、Play-JSON)

    我使用的 JSON 扩展依赖于 Mandubian 的 play json 2 2 SNAPSHOT 一切都很顺利 直到现在我有了一个基于 Scala STM 的项目 sbt 报告以下问题 error Modules were resolv
  • 在移动设备或桌面导航栏时显示汉堡菜单

    我正在进行移动优先设计 并使用 CSS 和 jQuery 制作了一个我非常喜欢的下拉汉堡菜单 但我想做的是 当页面显示在桌面上时 使该汉堡菜单消失 并替换为常规的水平菜单导航栏 我能够使菜单响应 所以至少有一个水平导航栏可以在桌面上下拉 而