JS+CSS实现精美的二级导航效果代码

下面就是讲解“JS+CSS实现精美的二级导航效果代码”的完整攻略,希望能对你有所帮助。

简介

在前端开发中,常见的网站二级导航效果是用户先点击顶部的一级导航,在鼠标悬停/点击时,顶部导航会下拉出一个垂直的下拉菜单,展示二级导航的内容,并在用户离开导航时收起下拉菜单。这种效果通常需要通过JS和CSS结合实现。

实现步骤

  1. 首先创建一个HTML页面,用ul和li标签实现顶部导航和下拉菜单的结构。
  2. 为顶部导航和下拉菜单添加样式,其中下拉菜单需要设置为隐藏,等待触发事件时才会显示出来。
  3. 为顶部导航添加事件监听器,当用户进行鼠标悬停/点击事件时,显示和隐藏下拉菜单。
  4. 为下拉菜单添加动态效果,例如鼠标悬停时颜色变化等。

示例1:只使用CSS实现下拉菜单

HTML代码

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a>
      <ul>
        <li><a href="#">Our Team</a></li>
        <li><a href="#">Our History</a></li>
        <li><a href="#">Our Mission</a></li>
      </ul>
    </li>
    <li><a href="#">Products</a>
      <ul>
        <li><a href="#">Product 1</a></li>
        <li><a href="#">Product 2</a></li>
        <li><a href="#">Product 3</a></li>
      </ul>
    </li>
    <li><a href="#">Services</a>
      <ul>
        <li><a href="#">Service 1</a></li>
        <li><a href="#">Service 2</a></li>
        <li><a href="#">Service 3</a></li>
      </ul>
    </li>
    <li><a href="#">Contact Us</a></li>
  </ul>
</nav>

CSS代码

nav ul {
  margin: 0;
  padding: 0;
}

nav ul li {
  display: inline-block;
  position: relative;
}

nav ul ul {
  display: none;
}

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

nav ul ul ul {
  margin-left: 100%;
  top: 0;
}

nav ul ul li {
  position: relative;
}

nav ul ul li a {
  background-color: #fff;
  color: #000;
  width: 200px;
  padding: 5px 0;
  text-align: center;
  border-bottom: 1px solid #ddd;
}

nav ul ul li a:hover {
  background-color: #ddd;
}

示例2:使用JS实现下拉菜单的切换

HTML代码

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a>
      <ul>
        <li><a href="#">Our Team</a></li>
        <li><a href="#">Our History</a></li>
        <li><a href="#">Our Mission</a></li>
      </ul>
    </li>
    <li><a href="#">Products</a>
      <ul>
        <li><a href="#">Product 1</a></li>
        <li><a href="#">Product 2</a></li>
        <li><a href="#">Product 3</a></li>
      </ul>
    </li>
    <li><a href="#">Services</a>
      <ul>
        <li><a href="#">Service 1</a></li>
        <li><a href="#">Service 2</a></li>
        <li><a href="#">Service 3</a></li>
      </ul>
    </li>
    <li><a href="#">Contact Us</a></li>
  </ul>
</nav>

CSS代码

nav ul {
  margin: 0;
  padding: 0;
}

nav ul li {
  display: inline-block;
  position: relative;
}

nav ul ul {
  display: none;
}

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

nav ul ul ul {
  margin-left: 100%;
  top: 0;
}

nav ul ul li {
  position: relative;
}

nav ul ul li a {
  background-color: #fff;
  color: #000;
  width: 200px;
  padding: 5px 0;
  text-align: center;
  border-bottom: 1px solid #ddd;
}

nav ul ul li a:hover {
  background-color: #ddd;
}

JS代码

var dropDownMenu = document.querySelectorAll('nav ul li');

//遍历菜单项并为其绑定事件
for (var i = 0; i < dropDownMenu.length; i++) {
  //为鼠标悬停事件绑定事件监听器
  dropDownMenu[i].addEventListener('mouseover', function() {
    this.querySelector('ul').style.display = 'block';
  });
  //为鼠标移出事件绑定事件监听器
  dropDownMenu[i].addEventListener('mouseout', function() {
    this.querySelector('ul').style.display = 'none';
  });
}

总结

通过上述攻略,我们可以了解到通过JS和CSS的结合,可以实现精美的二级导航效果。CSS可以帮助我们实现下拉菜单的样式,JS则可以帮助我们实现下拉菜单的切换功能。我们可以在以上示例的基础上,自己尝试进行更加细致的功能优化和样式调整,使网站导航看起来更加舒适美观。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS+CSS实现精美的二级导航效果代码 - Python技术站

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

相关文章

  • jQuery获取页面及个元素高度、宽度的总结——超实用

    jQuery获取页面及元素尺寸的总结 前言 在网页设计和开发中,经常需要获取页面元素的尺寸信息。本文将总结jQuery中获取页面和元素高度、宽度的相关方法,包括获取浏览器视口大小、文档的高度、元素的高度宽度等。 获取浏览器视口大小 在进行网页布局时,需要获取浏览器视口的大小,以便能够根据浏览器窗口的大小来动态地调整元素的位置和大小。 $(window).wi…

    css 2023年6月10日
    00
  • react的滑动图片验证码组件的示例代码

    下面就为大家讲解一下“react的滑动图片验证码组件的示例代码”的完整攻略。 1. 引入组件 首先,我们需要安装并引入react滑动图片验证码组件。在命令行中执行以下代码安装: npm install –save react-slide-captcha 在需要使用的页面中引入组件: import SlideCaptcha from ‘react-slide…

    css 2023年6月10日
    00
  • 傲游极速模式下a:hover使用了宋体字则不能正常显示下划线

    首先,傲游浏览器的 “极速模式” 是一种极简模式,优化了很多网页渲染的功能,以达到更快的速度和更流畅的体验。但是,极速模式在处理一些带有字体属性的CSS样式时并不完美,其中之一是使用宋体字体时在鼠标悬停时不能正常显示下划线。 为了解决这个问题,需要在CSS中添加 text-decoration:underline 属性,以确保在 a 标签处始终显示下划线。同…

    css 2023年6月9日
    00
  • 滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码

    以下是详细讲解“滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码”的攻略: 滚动条变色 首先,使用CSS的::-webkit-scrollbar伪类可以选择滚动条,进而改变滚动条的样式。比如,为滚动条添加渐变颜色,可以使用以下代码: ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-thumb …

    css 2023年6月9日
    00
  • IE和Firefox下javascript的兼容写法小结

    IE和Firefox下Javascript的兼容写法小结 在编写Javascript代码时,我们需要确保它在不同浏览器下都能正确运行。然而,不同浏览器对Javascript的支持程度存在差异,所以必须了解不同浏览器的兼容性问题,同时掌握一些在各浏览器下都能正常工作的兼容写法。 下面将结合两个具体实例介绍在IE和Firefox下Javascript的兼容写法。…

    css 2023年6月10日
    00
  • html网页引入svg图片的4种方式

    当我们想要在HTML网页中引入SVG图片的时候,有以下4种方式: 使用<img>标签 通过<img>标签来引入SVG图片,与引入普通图片的方式相同,只需指定图片的路径即可。需要注意的是,使用<img>标签引入的SVG图片无法通过CSS对其中的元素进行样式修改。 示例代码: <img src=”example.svg”…

    css 2023年6月9日
    00
  • 鼠标拖动改变DIV等网页元素的大小的实现方法

    实现网页元素拖动改变大小通常需要用到HTML、CSS和JavaScript技术。以下是一些实现方法的说明: 使用CSS3 resize属性 CSS3中的resize属性可以用于定义元素是否允许调整大小。将此属性应用于一个div元素,使其可以被拖动调整大小。但是需要注意的是,该方法仅可使用于某些浏览器(如Chrome、Firefox、Safari等),因为在一…

    css 2023年6月11日
    00
  • js Canvas实现圆形时钟教程

    下面我来详细讲解一下“js Canvas实现圆形时钟教程”的完整攻略。 1. 前言 本教程将介绍如何使用HTML5中的Canvas绘制一个圆形时钟,并实时更新显示当前时间。本教程需要一些基本的JavaScript和HTML5的知识,也会用到Canvas的基本操作,如果您对这些知识还不是很熟悉,建议在开始本教程之前,先学习一下相关的基础知识。 2. 实现方法 …

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