使用jquery实现HTML5响应式导航菜单教程

yizhihongxing

使用jQuery实现HTML5响应式导航菜单是一种常见的开发技术,可以方便实现移动设备上的导航功能。下面就这个话题,提供一个详细的攻略。

准备工作

在开始实现之前,我们需要一个HTML5页面模板、一个CSS文件和最新版的jQuery库。可以通过下面的链接下载:

  • HTML5页面模板:https://www.w3schools.com/html/html5_template.asp
  • CSS文件:https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
  • jQuery库:https://code.jquery.com/jquery-3.6.0.min.js

下载完成后,将它们放在同一个文件夹下,并在HTML文件中引用CSS文件和jQuery库。

创建导航菜单

在HTML中,我们可以使用ul和li标签来创建导航菜单。下面是一个例子:

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

在CSS文件中,我们可以设置导航菜单的样式,例如设置菜单项的颜色、背景色、间距等。下面是一个例子:

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

实现响应式导航菜单

接下来,我们需要使用jQuery为导航菜单添加响应式功能。我们需要在窗口大小改变时检测窗口宽度,如果小于一个特定值,则将导航菜单变成下拉菜单。下面是代码实现:

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

以上代码使用jQuery库绑定一个按钮,当点击该按钮时,切换下拉菜单的状态。然后,当窗口大小改变时,动态修改导航菜单的显示状态。

示例一

下面是一个完整的实现示例:

HTML

<!DOCTYPE html>
<html>
<head>
  <title>Responsive Navigation Menu</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <header>
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Services</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  </header>
</body>
</html>

CSS

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

.toggle-button {
  display: none;
  font-size: 30px;
  border: none;
  background-color: transparent;
  color: #fff;
  padding: 10px;
  cursor: pointer;
}

@media (max-width: 600px) {
  nav ul {
    display: none;
  }

  .toggle-button {
    display: block;
  }
}

JavaScript

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

运行这个示例,你会看到导航菜单变成了下拉菜单。

示例二

下面是另一个示例,展示如何在下拉菜单中添加子菜单:

HTML

<!DOCTYPE html>
<html>
<head>
  <title>Responsive Navigation Menu with Submenus</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <header>
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li>
          <a href="#">Services</a>
          <ul>
            <li><a href="#">Web Development</a></li>
            <li><a href="#">Mobile Development</a></li>
            <li><a href="#">Desktop Development</a></li>
          </ul>
        </li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  </header>
</body>
</html>

CSS

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
  position: relative;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

nav ul ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  background-color: #333;
}

nav ul ul li {
  display: block;
}

nav ul ul a {
  padding: 10px;
}

.toggle-button {
  display: none;
  font-size: 30px;
  border: none;
  background-color: transparent;
  color: #fff;
  padding: 10px;
  cursor: pointer;
}

@media (max-width: 600px) {
  nav li {
    display: block;
  }

  nav ul ul {
    position: static;
    display: none;
  }

  nav ul li:hover > ul {
    display: block;
  }

  nav ul li {
    display: block;
    margin-right: 0;
  }

  .toggle-button {
    display: block;
  }
}

JavaScript

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

运行这个示例,你会看到当鼠标悬停在Services上时,会出现一个下拉菜单。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用jquery实现HTML5响应式导航菜单教程 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS 仿腾讯发表微博的效果代码

    首先讲解一下JS仿腾讯发表微博的效果代码需要的知识点: 获取DOM元素及其属性值。使用document.getElementById()或document.querySelector()获取DOM元素,通过元素对象的value属性获取输入框的值,通过元素对象的innerHTML属性改变提示信息的内容。 利用按钮添加点击事件。通过给按钮元素对象绑定onclic…

    css 2023年6月10日
    00
  • 利用python Selenium实现自动登陆京东签到领金币功能

    下面是详细的python Selenium实现自动登陆京东签到领金币功能的攻略。 准备工作 在开始操作前,需要确保电脑已经安装好了Chrome浏览器,以及ChromeDriver驱动程序。 Chrome浏览器的安装可以去官网下载:https://www.google.com/chrome/ ChromeDriver驱动程序则是需要根据自己电脑上的Chrome…

    css 2023年6月9日
    00
  • js模拟3D场景效果代码打包

    我来为您详细讲解“js模拟3D场景效果代码打包”的完整攻略。 什么是JS模拟3D场景效果? JavaScript模拟3D场景效果就是通过JS代码实现一个3D场景,让用户在浏览器中感受到3D的效果。 实现JS模拟3D场景的方法 实现JS模拟3D场景一般有两种方法: 1. 使用CSS 3D Transforms CSS 3D Transforms是CSS3的一个…

    css 2023年6月10日
    00
  • 网络爬虫案例解析

    网络爬虫案例解析 网络爬虫是一种自动化获取互联网信息的技术,可以帮助我们从互联网上获取大量的有用信息。本文将详细讲解网络爬虫的完整攻略,包含以下步骤: 确定爬取目标 分析目标网站结构 编写网络爬虫程序 存储数据 反爬虫处理 确定爬取目标 在开始编写网络爬虫程序之前,需要确定爬取目标。可以选择一些常见的目标,比如新闻网站、电商平台、社交媒体等。也可以选择一些特…

    css 2023年6月9日
    00
  • jquery实现的随机多彩tag标签随机颜色和字号大小效果

    首先,我们需要了解什么是jQuery。jQuery是一种流行的JavaScript库,它可以使在网页上运行的JavaScript代码更加容易和简单。它提供了一系列便捷的API来操作HTML、CSS和DOM等内容,同时具备跨浏览器兼容性、高效性等优点。 针对“jquery实现的随机多彩tag标签随机颜色和字号大小效果”,我们可以采取以下步骤: 1. 创建一个H…

    css 2023年6月9日
    00
  • 详细介绍Scrapy shell的使用教程

    详细介绍Scrapy shell的使用教程 Scrapy是一款强大的Python网络爬虫框架,它对于数据爬取、处理和存储具有很高的效率和灵活性。而Scrapy shell则是Scrapy框架中一个非常实用的工具,可以在未定义爬虫规则前进行实时的网站数据爬取和交互调试。下面详细介绍Scrapy shell的使用教程。 1. 启动Scrapy shell 在命令…

    css 2023年6月9日
    00
  • IE浏览器下的CSS问题小结

    IE 浏览器是一个老旧的浏览器,它对 CSS 的支持程度不如现代浏览器。因此,在开发网站时,我们需要注意一些 IE 浏览器下的 CSS 问题。下面是一个完整攻略,包含了如何解决 IE 浏览器下的 CSS 问题的过程和两个示例说明。 IE 浏览器下的 CSS 问题 问题一:盒模型 IE 浏览器中的盒模型与其他浏览器不同。在 IE 浏览器中,盒模型的宽度和高度包…

    css 2023年5月18日
    00
  • 纯CSS实现3D按钮效果实例代码

    让我详细讲解如何实现“纯CSS实现3D按钮效果实例代码”的完整攻略。 标题 首先,我们需要了解一下3D按钮效果的实现原理。简单来说,我们可以利用CSS的transform属性,通过改变元素的旋转、偏移等属性来达到3D效果。下面是一条基本的CSS代码,可以让一个按钮呈现出3D效果: .button { border: none; position: relat…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部