jQuery和CSS仿京东仿淘宝列表导航菜单

下面是详细讲解“jQuery和CSS仿京东仿淘宝列表导航菜单”的完整攻略。

一、需求分析

  1. 设计导航菜单,包含点击切换功能
  2. 实现鼠标悬停展开子菜单
  3. 导航菜单需要响应式布局

二、技术选型

  1. HTML
  2. CSS
  3. jQuery

三、技术实现

  1. HTML结构和CSS样式编写

1.1 HTML结构编写

<nav>
  <ul class="navList">
    <li><a href="#">首页</a></li>
    <li class="hasChild">
      <a href="#">电子产品</a>
      <ul class="subNavList">
        <li><a href="#">手机</a></li>
        <li><a href="#">电脑</a></li>
        <li><a href="#">平板</a></li>
      </ul>
    </li>
    <li><a href="#">女装</a></li>
    <li><a href="#">男装</a></li>
  </ul>
</nav>

1.2 CSS样式编写

.navList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: space-between;
  background-color: #f3f3f3;
  font-size: 16px;
}

.navList li {
  position: relative;
  height: 48px;
  line-height: 48px;
  padding: 0 10px;
  cursor: pointer;
}

.navList li:hover {
  background-color: #e3e3e3;
}

.hasChild:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -2px;
  border-top: 6px solid;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  border-bottom: none;
}

.subNavList {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: #fff;
  width: 240px;
  box-shadow: 0 0 3px #ddd;
}

.subNavList li {
  height: 40px;
  line-height: 40px;
  padding: 0 20px;
}

.subNavList li:hover {
  background-color: #f3f3f3;
}

2. jQuery代码编写

$(document).ready(function() {
  // 子菜单显示隐藏
  $(".hasChild").hover(function() {
    $(this).find(".subNavList").stop().slideDown(300);
  }, function() {
    $(this).find(".subNavList").stop().slideUp(300);
  });

  // 导航菜单切换
  $(".navList > li > a").click(function(e) {
    e.preventDefault();
    $(this).parent().addClass("active").siblings().removeClass("active");
  });
});

3. 响应式布局

@media screen and (max-width: 768px) {
  .navList {
    flex-direction: column;
  }
  .navList li {
    width: 100%;
    text-align: center;
  }
  .hasChild:after {
    display: none;
  }
  .subNavList {
    position: static;
  }
}

四、示例说明

  1. 京东导航菜单示例:https://codepen.io/xiangzongliang/pen/rJWvYx
  2. 淘宝导航菜单示例:https://codepen.io/wsq7247/pen/yLyYZrg

以上两个示例均包含了完整的导航菜单代码和样式,可以参考和学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery和CSS仿京东仿淘宝列表导航菜单 - Python技术站

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

相关文章

  • CSS3移动端vw+rem不依赖JS实现响应式布局的方法

    下面是关于CSS3移动端vw+rem不依赖JS实现响应式布局的完整攻略: 什么是vw和rem? “vw”是视口单位,是相对于视口宽度的单位,1vw等于视口宽度的1% “rem”是相对单位,相对于根元素(即HTML元素)的字体大小,可根据具体情况自行设定 使用vw+rem实现响应式布局的步骤 1.设置HTML根元素的字体大小 具体字体大小需要根据设计稿来定,通…

    css 2023年6月9日
    00
  • HTML table 表格边框的实现思路

    下面是 HTML table 表格边框的实现思路的完整攻略。 1. 设置表格边框 要添加表格边框,可以使用 <table> 元素的 border 属性。border 属性接受一个正整数作为值,用来指定表格边框的宽度,如下所示: <table border="1"> <tr> <td>单元格 …

    css 2023年6月9日
    00
  • JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)

    下面是“JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)”的攻略: 实现思路 本例中,我们需要通过鼠标事件监听和CSS动画实现,实现当鼠标经过一个元素时,弹出一个DIV框,并带有缓冲动画渐变效果。具体的实现步骤如下: 使用CSS定义一个弹出DIV框,并设置其初始状态为不可见。 监听需要触发弹出的元素的鼠标移入事件,并在事件处理函数中,使…

    css 2023年6月10日
    00
  • 浅谈inline-block及解决空白间距

    当使用CSS布局时,我们经常使用display属性来控制元素的布局。其中一个display属性值是inline-block。那么什么是inline-block呢?在本篇攻略中,我们将探讨这个属性,并回答解决这个属性可能引发的空白间距问题的方法。 什么是inline-block? inline-block是CSS中的一个布局属性,它的作用是将元素设置为内联块级…

    css 2023年6月9日
    00
  • jQuery选择器之基本选择器用法实例分析

    jQuery选择器之基本选择器用法实例分析 什么是jQuery选择器? jQuery选择器是用于选择和操作HTML文档中的元素的一种jQuery方法,可以通过id、class、标签名等多种方式来获取元素,从而实现对页面元素的操作。 基本选择器有哪些? jQuery提供了丰富的选择器,许多常用的选择器都是基于CSS选择器进行扩展实现的。基本选择器包括: 定位元…

    css 2023年6月9日
    00
  • 纯CSS实现的大小渐变、渐远效果

    下面是详细讲解“纯CSS实现的大小渐变、渐远效果”的完整攻略。 纯CSS实现的大小渐变效果 步骤1:创建HTML结构 首先,我们需要先创建HTML结构用于展示效果。假设我们需要创建一个圆形的元素,并在元素中心放置一些内容。我们可以使用一个div元素,并设置它的宽度和高度相等,即可创建出一个圆形的元素,同时在div元素内部加入一些子元素,用于展示需要突出显示的…

    css 2023年6月9日
    00
  • js+css在交互上的应用

    我会尽力详细讲解“js+css在交互上的应用”的完整攻略。在本次讲解中,我将着重介绍如何使用js和css实现网站的交互特效。下面是详细的步骤和示例操作。 1. 使用CSS实现动态效果 CSS可以帮助我们实现很多简单的动态效果,例如:鼠标移动到元素上时改变元素的颜色或大小,展示隐藏的元素等。 1.1 鼠标移动到元素上改变元素的颜色 要实现这一效果,我们可以使用…

    css 2023年6月10日
    00
  • stricky footer的三种解决方案详解

    “sticky footer”的目标就是让footer永远处于页面底部,无论页面的内容高度是多少。下面介绍三种实现“sticky footer”的方法。 方法一:使用flex布局 flex布局可以很容易地实现sticky footer。步骤如下: 在html里添加如下代码: <body> <div class="wrapper&q…

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