jquery+css实现侧边导航栏效果

下面我就来详细讲解“jquery+css实现侧边导航栏效果”的攻略。

1. 准备工作

首先需要准备的是jquery和css文件。可以通过相应的CDN链接或者下载文件到本地。

2. HTML结构

侧边导航栏的HTML结构主要包括两个部分:导航栏头部和导航栏内容。可以通过以下示例粘贴到HTML代码中:

<div class="nav-header">
  <h3 class="logo">Logo</h3>
  <button class="nav-toggle"><i class="fa fa-bars"></i></button>
</div>
<div class="nav-content">
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</div>

3. CSS样式

接下来需要通过CSS样式来实现侧边导航栏的效果。可以使用以下代码:

/* 导航栏整体样式 */
.nav-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 60px;
  background: #333;
  color: #fff;
}

/* 导航栏logo样式 */
.logo {
  margin: 0;
  padding: 0 20px;
  font-size: 24px;
}

/* 导航栏toggle样式 */
.nav-toggle {
  margin-right: 20px;
  font-size: 24px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
}

/* 导航栏内容整体样式 */
.nav-content {
  position: fixed;
  top: 0;
  left: -200px;
  z-index: 100;
  width: 200px;
  height: 100%;
  background-color: #2c3e50;
  overflow-x: hidden;
  transition: 0.5s;
}

/* 导航栏内容ul、li样式 */
.nav-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

.nav-content ul li {
  margin: 20px 0;
}

.nav-content ul li a {
  display: block;
  padding: 10px;
  font-size: 18px;
  color: #fff;
  text-decoration: none;
  transition: 0.3s;
}

.nav-content ul li a:hover {
  background-color: #34495e;
}

4. jQuery代码

接下来需要使用jQuery代码来实现侧边导航栏的展开和关闭。可以使用以下代码:

$(function() {
  $('.nav-toggle').click(function() {
    $('.nav-content').toggleClass('show-nav');
  });
});

示例

这里提供两个示例供大家参考:

  1. 侧边导航栏同时支持PC和移动端显示

由于移动端和PC端的屏幕尺寸不同,在展示侧边导航栏时需要进行不同的布局。可以使用以下代码实现:

/* PC端导航栏样式 */
@media (min-width: 768px) {
  /* 导航栏内容整体样式 */
  .nav-content {
    position: static;
    top: auto;
    left: auto;
    z-index: 0;
    width: 100%;
    height: 60px;
    background-color: transparent;
    overflow-x: visible;
    transition: none;
  }

  /* 导航栏内容ul、li样式 */
  .nav-content ul {
    display: flex;
    flex-direction: row;
  }

  .nav-content ul li {
    margin: 0 10px;
  }

  .nav-content ul li a {
    display: inline-block;
    padding: 10px;
    font-size: 18px;
    color: #fff;
    text-decoration: none;
    transition: 0.3s;
  }
}

/* 移动端导航栏样式 */
@media (max-width: 767px) {
  /* 导航栏内容整体样式 */
  .nav-content {
    position: fixed;
    top: 0;
    left: -200px;
    z-index: 100;
    width: 200px;
    height: 100%;
    background-color: #2c3e50;
    overflow-x: hidden;
    transition: 0.5s;
  }

  /* 导航栏内容ul、li样式 */
  .nav-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
    display: block;
  }

  .nav-content ul li {
    margin: 20px 0;
  }

  .nav-content ul li a {
    display: block;
    padding: 10px;
    font-size: 18px;
    color: #fff;
    text-decoration: none;
    transition: 0.3s;
  }
}
  1. 侧边导航栏展开后遮盖整个页面

可以通过后面添加一层全屏遮罩来实现:

/* 导航栏遮罩层样式 */
.nav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  display: none;
}

/* 导航栏展开时遮罩层显示 */
.show-nav + .nav-overlay {
  display: block;
}

同时,在侧边导航栏的HTML结构中加入以下代码:

<div class="nav-overlay"></div>

然后在jQuery代码中修改为以下代码:

$(function() {
  $('.nav-toggle').click(function() {
    $('.nav-content').toggleClass('show-nav');
    $('.nav-overlay').toggle();
  });
});

可以实现侧边导航栏展开时遮盖整个页面。

以上就是“jquery+css实现侧边导航栏效果”的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery+css实现侧边导航栏效果 - Python技术站

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

相关文章

  • !DOCTYPE声明对JavaScript的影响分析

    当浏览器解析HTML文档时,会按照指定的文档类型解析并显示内容。在HTML文档开头处,通常会使用<!DOCTYPE>声明来指定文档类型。这个声明告诉浏览器如何正确解析HTML文档,并影响到文档中JavaScript代码的执行效果。 下面是DOCTPYE声明的两种常见方式: <!DOCTYPE html> <!DOCTYPE ht…

    css 2023年6月10日
    00
  • JavaScript实现左右下拉框动态增删示例

    下面是详细的“JavaScript实现左右下拉框动态增删”攻略: 准备工作 在开始实现之前,我们需要先准备好需要用到的 HTML 结构和 JavaScript 文件。具体代码如下: HTML 结构: <!– 左右两边的下拉框容器 –> <div class="selectBox"> <select mul…

    css 2023年6月10日
    00
  • 用JS实现图片轮播效果代码(一)

    我将详细讲解“用JS实现图片轮播效果代码(一)”的完整攻略。 一、背景介绍 图片轮播是网站常见的交互效果之一,通过展示一系列图片的滑动切换,吸引用户注意力,并增加页面的互动性和美观性。而使用JS代码实现图片轮播效果,可以提高页面加载速度和动态交互效果,并且具有良好的浏览器兼容性。 二、实现过程 首先,在HTML页面中添加图片轮播所需要的html结构,并设置好…

    css 2023年6月10日
    00
  • vue项目中使用rem替换px的实现示例

    针对“vue项目中使用rem替换px的实现示例”的完整攻略,建议采用以下实现步骤: 1. 安装 postcss-pxtorem 插件 在你的 Vue 项目中安装 postcss-pxtorem 插件,该插件可以将 CSS 中的 px 单位转换成 rem 单位。 首先,在 Vue 项目根目录中安装 postcss-pxtorem 和 postcss-loade…

    css 2023年6月10日
    00
  • 全面了解行内元素与块级元素的区别

    全面了解行内元素与块级元素的区别 一、概念解释 在 HTML 中,元素分为两种类型:块级元素和行内元素。块级元素会在页面中生成一个独立的区域,而行内元素则是一个可内嵌于块级元素中的元素。通俗点说,块级元素就像是盒子,而行内元素就像放在盒子里的小东西。 二、区别 1. 渲染方式不同 块级元素会在页面中单独占一行,相邻的块级元素之间会有间隔。例如: <di…

    css 2023年6月9日
    00
  • Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码第1/3页

    下面是关于“Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码”攻略的详细讲解: 1. 准备工作 在开始之前,我们需要先准备好一些必要的工作: 确认使用的Vue项目已经基于Vue-cli完成了初始化 安装Vue-router和Animate.css npm install vue-router –save npm install a…

    css 2023年6月10日
    00
  • 详解中文字体在CSS样式中font-family对应的英文名称

    关于CSS样式中font-family对应的英文名称,我可以给你讲解一下相关的内容。 在CSS中,可以使用font-family属性来指定字体系列(即字体名称),用于渲染HTML文档中的文字。通常我们使用中文的时候,需要将中文字体写入font-family 属性中并且需要知道其对应的英文名称,因为有的字体名称并不是拼音形式。接下来我们就来详细解释下如何得到中…

    css 2023年6月9日
    00
  • JQuery中解决重复动画的方法

    当我们在使用 jQuery 实现动画效果时,经常会遇到重复的动画效果,这可能会导致一些问题,比如资源占用过多,或者动画效果表现出现异常等。那么,如何避免重复动画的问题呢? 1. 使用 stop 方法解决重复动画 jQuery 提供了 stop 方法,该方法可用于停止一个正在运行的动画效果。在执行新的动画之前,我们可以先使用该方法停止之前的动画效果。具体使用方…

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