重学前端之导航下拉菜单(一)

本文是《重学前端系列》的一部分,旨在通过JavaScript和CSS3实现导航栏下拉菜单的效果。需求包括鼠标悬停时显示二级菜单、背景拉长、首页高亮等。文章详细介绍了实现思路,利用事件监听、CSS3动画和伪类来创建动态效果。
摘要由CSDN通过智能技术生成

写在前面的话: 最近因为工作需要,加上想巩固一下自己的JavaScript基础知识,所以打算从实际工作中着手,从头开始撸一遍JS。 但不是照着书本里的章节顺序,而是以网页形式,从页头、导航、banner图…页脚,重新梳理一遍,将每一个特效的需求、思路、逻辑及涉及到的知识点做一次总结。刚好也上过winter老师的《重学前端》课程,由于JS基础知识薄弱,课程中大部分章节没看,正好借此机会,完善自己。
本系列里的各种实现效果并非完全原创,自己也在学习的过程中,不可避免的会借鉴一些别人的思路,例如:他人用jQuery实现出来的效果,我会参照实现逻辑,用原生JS实现一遍,但我会将原作标示出来。
本系列命名:《重学前端系列》
本系列参照: 腾讯官网首页面

实现效果

在这里插入图片描述

效果需求:
  • 鼠标触及导航项时,显示二级菜单
  • 鼠标触及导航项时,白色背景拉长
  • 【首页】项始终高亮
  • 随着鼠标移动,对应项高亮
  • 鼠标离开,导航高度回收,二级菜单隐藏,回到【首页】项高亮
实现思路:

以前写过一个纯css的导航下拉菜单,虽然也能实现,但要想效果更好,JS和CSS3的结合是最完美的选择,但前提是对应用户的浏览器版本要给力

  • 当鼠标经过导航项时,JS要做两件事,将白色背景拉长和显示二级菜单,css3要做的就是高亮显示选中项,下面用实际代码来进行拆解分析
  • 鼠标触及后背景拉长并不是使用名为riped-menu-list父元素背景,而是设置一个名为riped-navBg-hover来充当背景,先在css中为其添加高度,背景颜色,将其隐藏,鼠标触及时展开
<div class="riped-nav">
                <ul class="riped-menu-list">
                    <li class="riped-menu-item"><a class="riped-menu-txt" href="#">首页</a></li>
                    <li class="riped-menu-item"><a class="riped-menu-txt" href="#">新闻中心</a></li>
                    <li class="riped-menu-item"><a class="riped-menu-txt" href="#">重要活动</a></li>
                    <li class="riped-menu-item">
                        <a class="riped-menu-txt" href="#">科研活动</a>
                        <ul class="riped-sub-list">
                            <li><a href="#">二级菜单</a></li>
                            <li><a href="#">二级菜单</a></li>
                            <li><a href="#">二级菜单</a></li>
                            <li><a href="#">二级菜单</a></li
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值