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

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日

相关文章

  • BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码

    首先我们需要了解什么是Bootstrap和FormValidation。 Bootstrap是一套开源的前端框架,主要用于快速开发响应式、移动设备优先的Web项目。Bootstrap内置了丰富的CSS和JavaScript组件,提供了常见的页面布局、表单、按钮等元素,整个框架使用起来非常便利。 FormValidation是一款基于Bootstrap的表单验…

    JavaScript 2023年6月10日
    00
  • JavaScript实现数字前补“0”的五种方法示例

    JavaScript实现数字前补“0”是一个常见的需求。在编程中,我们经常需要对数字进行前补“0”的操作,以匹配字符串的长度或者满足数据格式的要求。本文将详细讲解五种JavaScript实现数字前补“0”的方法示例。 方法一:字符串拼接 其实,这是最常见的一种方法。可以将数字字符与“0”字符进行拼接,再将结果转换为字符串。拼接前需要判断数字是否占位够用。代码…

    JavaScript 2023年5月28日
    00
  • Javascript Global undefined 属性

    JavaScript中的undefined是一个全局属性,表示一个未定义的值。如果一个变量没有被赋值,则该变量的值为undefined。以下是关于undefined全局属性的完整攻略,包括两个示例。 JavaScript Global对象中的undefined属性 JavaScript Global对象中的undefined属性表示一个未定义的值。如果一个变…

    JavaScript 2023年5月11日
    00
  • 用js获取元素属性的代码

    获取HTML元素属性是前端开发中常见的操作。使用JavaScript可以轻松地获取元素的属性,我们可以通过以下方式来实现。 1. 通过JavaScipt获取元素属性 我们可以通过JavaScript中的document对象来访问HTML元素,使用属性访问器(.)或者获取属性方法(getAttribute)来获取元素的属性。 1.1 使用属性访问器 使用属性访…

    JavaScript 2023年6月10日
    00
  • JavaScript 利用Cookie记录用户登录信息

    下面是详细讲解“JavaScript 利用Cookie记录用户登录信息”的完整攻略: 什么是Cookie Cookie即“小甜饼”,是浏览器存储在客户端(电脑客户端、手机客户端等)中的一小段文本,在HTTP请求和响应中被发送和接收。Cookie能够跟踪用户的活动并在用户重访时保存有关用户的信息。Cookie可以使用JavaScript进行控制。 利用Cook…

    JavaScript 2023年6月11日
    00
  • fmt:formatDate的输出格式详解

    让我为您解释“fmt:formatDate的输出格式详解”。 首先,我们需要了解“fmt:formatDate”是一个JSTL中用来将日期格式化输出的标签。在使用此标签时,需要设置格式化规则,我们可以通过写出特定的格式选项,从而实现不同的日期格式输出。下面进入具体步骤。 1. 设置日期值 使用fmt:formatDate标签时,需要提供一个日期,可以是Dat…

    JavaScript 2023年6月10日
    00
  • JS Loading功能的简单实现

    下面是详细讲解“JS Loading功能的简单实现”的完整攻略。 什么是JS Loading功能? JS Loading功能是指在网页中通过异步加载JavaScript文件,避免了网页在加载JavaScript资源时阻塞其他资源,提高了网页的响应速度和用户体验。 如何实现JS Loading功能? 在实现JS Loading功能时,可以采用如下的步骤: 创建…

    JavaScript 2023年6月11日
    00
  • JAVA Iterator 转成 List 的操作

    当需要将Iterator转成List时,可以使用Java中的Collections工具类中提供的addAll()方法将Iterator中的元素逐个添加到List中。下面提供具体的操作步骤和示例说明: 1. 创建Iterator对象 首先创建一个Iterator对象,例如: Iterator<String> it = list.iterator()…

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