js实现导航栏上下动画效果

yizhihongxing

JS实现导航栏上下动画效果攻略

1. 确定导航栏样式

首先,我们需要确定导航栏的样式,通常包括容器样式、菜单样式和链接样式。可以使用CSS给导航栏添加样式。

.navbar {
  background-color: #fff;
  color: #333;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

.navbar .menu {
  display: none;
}

.navbar a {
  color: #333;
  text-decoration: none;
}

2. 添加按钮和动画

我们需要添加一个按钮,当该按钮被单击时,菜单将显示或隐藏。同时,我们需要使用JS添加动画效果以实现菜单的平滑显示和隐藏。

<div class="navbar">
  <a href="#">My Website</a>
  <button class="menu-toggle">&#9776;</button>
  <ul class="menu">
    <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>
.navbar .menu {
  display: none;
  transition: all 0.4s ease-in-out;
}

.navbar .menu.show {
  display: block;
  transform: translateY(0);
}

.navbar .menu.hide {
  display: none;
  transform: translateY(-100%);
}
var menuToggle = document.querySelector('.menu-toggle');
var menu = document.querySelector('.menu');

menuToggle.addEventListener('click', function() {
  menu.classList.toggle('show');
  menu.classList.toggle('hide');
});

在上述代码中,我们首先使用querySelector获取菜单切换按钮和菜单。在单击菜单切换按钮时,我们使用classList.toggle()函数在.show和.hide类之间切换,这将添加或移除菜单的显示和隐藏类。我们使用CSS transition属性和transform属性来实现菜单平滑的显示和隐藏效果。

3. 示例

以下是两个示例,演示了JS实现导航栏上下动画效果的完整过程。

示例1:使用jQuery实现导航栏动画效果

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Example 1</title>
  <style>
    .navbar {
      background-color: #fff;
      color: #333;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0.5rem;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    }

    .navbar .menu {
      display: none;
      transition: all 0.4s ease-in-out;
    }

    .navbar .menu.show {
      display: block;
      transform: translateY(0);
    }

    .navbar .menu.hide {
      display: none;
      transform: translateY(-100%);
    }

    .navbar a {
      color: #333;
      text-decoration: none;
    }
  </style>
</head>
<body>
  <div class="navbar">
    <a href="#">My Website</a>
    <button class="menu-toggle">&#9776;</button>
    <ul class="menu">
      <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>

  <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      $('.menu-toggle').click(function() {
        $('.menu').slideToggle('slow');
      });
    });
  </script>
</body>
</html>

示例2:使用原生JS实现导航栏动画效果

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Example 2</title>
  <style>
    .navbar {
      background-color: #fff;
      color: #333;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0.5rem;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    }

    .navbar .menu {
      display: none;
      transition: all 0.4s ease-in-out;
    }

    .navbar .menu.show {
      display: block;
      transform: translateY(0);
    }

    .navbar .menu.hide {
      display: none;
      transform: translateY(-100%);
    }

    .navbar a {
      color: #333;
      text-decoration: none;
    }
  </style>
</head>
<body>
  <div class="navbar">
    <a href="#">My Website</a>
    <button class="menu-toggle">&#9776;</button>
    <ul class="menu">
      <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>

  <script>
    var menuToggle = document.querySelector('.menu-toggle');
    var menu = document.querySelector('.menu');

    menuToggle.addEventListener('click', function() {
      menu.classList.toggle('show');
      menu.classList.toggle('hide');
    });
  </script>
</body>
</html>

以上就是JS实现导航栏上下动画效果的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现导航栏上下动画效果 - Python技术站

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

相关文章

  • JavaScript异常处理

    JavaScript异常处理可以帮助开发人员减少代码中的错误,提高代码的健壮性和稳定性。在 JavaScript 中,异常是由错误或异常条件引起的程序流控制中的偏差,也就是程序出了问题。 JavaScript异常处理通常使用 try-catch 语句块实现。try 语句块包含可能引发异常的代码,而 catch 语句块用于捕捉异常并处理它们。以下是一个基本的 …

    Web开发基础 2023年3月30日
    00
  • JavaScript实现生成GUID(全局统一标识符)

    生成GUID是前端开发中非常常见的需求之一,在JavaScript中实现也非常简单,可以通过以下步骤完成: 导入uuid库 JavaScript本身并没有原生的生成GUID的函数,但是可以通过第三方库来实现,其中最常用的就是uuid库。可以通过以下命令将uuid库导入到项目中: npm install uuid –save 使用uuid库生成GUID 成功…

    JavaScript 2023年6月10日
    00
  • Javascript Math pow() 方法

    JavaScript中的Math.pow()方法是用于计算一个数的指定次幂的函数。以下是关于Math.pow()方法的完整攻略,包含两个示例。 JavaScript Math对象的pow方法 JavaScript Math的pow()方法用于计算一个数的指定次幂。下面是pow()方法的语法: Math.pow(base, exponent) 其中,base表…

    JavaScript 2023年5月11日
    00
  • 分享一个自己写的简单的javascript分页组件

    下面我来详细讲解如何分享一个自己写的简单的 JavaScript 分页组件,并且提供两条示例说明。 前置知识 在开始分享 JavaScript 分页组件之前,需要掌握一些基本的前置知识,如 HTML、CSS 和 JavaScript 的基本语法和概念。同时,也需要了解一些相关的知识,比如 DOM 操作、事件监听、Ajax 等。 分享步骤 分享一个 JavaS…

    JavaScript 2023年6月11日
    00
  • JS定时器使用,定时定点,固定时刻,循环执行详解

    关于JS定时器的使用,通常有两种方式:setTimeout和setInterval。其中,setTimeout可以在指定的时间后执行一次代码,而setInterval则可以每隔指定的时间重复执行代码,直到手动停止它。 setTimeout 语法 setTimeout(function, milliseconds, param1, param2, …) 参…

    JavaScript 2023年5月27日
    00
  • javascript中的delete使用详解

    当我们在JavaScript中使用delete关键字时,它有两种用途: 删除对象的属性 删除对象本身 下面,我们将逐一介绍这两种情况。 删除属性 在JavaScript中,我们可以删除一个对象的属性。我们可以使用delete关键字来删除属性。如下: let obj = { foo: true, bar: false }; delete obj.bar; co…

    JavaScript 2023年5月28日
    00
  • jquery实现简单的表单验证

    下面是jQuery实现简单的表单验证的完整攻略: 1. 导入jQuery库文件 要使用jQuery,首先需要在页面头部导入jQuery库文件,可以从官网下载或直接使用CDN加速链接。示例: <head> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jque…

    JavaScript 2023年6月10日
    00
  • SSM框架整合JSP中集成easyui前端ui项目开发示例详解

    我将详细讲解“SSM框架整合JSP中集成easyui前端ui项目开发示例详解”的完整攻略。 SSM框架整合JSP中集成easyui前端ui项目开发示例详解 简介 本文将介绍如何在使用SSM框架的JSP项目中集成easyui前端UI,从而开发出更为美观的前端页面。 准备工作 在开始前,需要确保已经完成以下准备工作: 了解SSM框架的基本概念和配置方法。 了解e…

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