导航栏上拉显示下拉隐藏

一.需求说明

页面加载时导航栏悬浮在页面的上方,当滚动条向下滚动时导航栏隐藏,当滚动条向上滚动时导航栏显示

 

二.原理讲解

​ 页面打开时,先获取到页面的滚动条的初始高度(也可直接设为0),作用是初始化一个值,用于后面事件触发后进行判断。

​ 再获取导航栏的高度,作用是在初始位置进行下拉页面后,在什么时候触发导航栏隐藏。

​ 最后写滚动条触发函数

 

三.事件函数讲解

​ 事件触发后,首先判断事件发生后滚动条的高度与导航栏的高度。
当判断为True时,导航条隐藏;当判断为False时,导航条出现

​ 然后判断本次事件导航条的高度与上次事件导航条的高度。
当上次高度,低于本次高度,说明用户在看下面的内容,导航栏隐藏
当上次高度,高于本次高度,说明用户在看上面的内容,导航栏出现

四.源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* 导航栏样式 */
        .navigation{
            width: 100%;
            height: 50px;
            background-color: #d0f079;
            position: fixed;         
            left:0;
            top: 0;
            text-align: center;
            transition: top 0.5s;    
        }
        /* 隐藏效果 */
        .hide{
            top: -60px;
        }
        /* 内容栏样式 */
        .content{
            width: 80%;
            height: 5000px;
            margin: 60px auto;
            background-color: #41bcff;
            text-align: center;
        }

    </style>
</head>
<body>

<div class="navigation">导航菜单栏</div>
<div class="content">内容</div>
//此处jquery路径要替换
<script src="js/jquery-2.0.3.js"></script>
<script>
    $(function(){
        //页面初始化的时候,获取滚动条的高度(上次高度)
        var start_height = $(document).scrollTop();
        //获取导航栏的高度(包含 padding 和 border)
        var navigation_height = $('.navigation').outerHeight();
        $(window).scroll(function() {
            //触发滚动事件后,滚动条的高度(本次高度)
            var end_height = $(document).scrollTop();
            //触发后的高度 与 元素的高度对比
            if (end_height > navigation_height){
                $('.navigation').addClass('hide');
            }else {
                $('.navigation').removeClass('hide');
            }
            //触发后的高度 与 上次触发后的高度
            if (end_height < start_height){
                $('.navigation').removeClass('hide');
            }
            //再次获取滚动条的高度,用于下次触发事件后的对比
            start_height = $(document).scrollTop();
        });
    });
</script>
</body>
</html>

 

 

 

 

HTML和CSS是构建网页的基石,通过它们可以创建结构化的内容和进行样式设计。对于导航栏及其下拉菜单的制作,通常需要将HTML用于构建导航栏的结构,而CSS用于设计样式和交互效果,如下拉菜单的显示隐藏。 首先,一个基本的导航栏可以通过HTML中的`<nav>`标签和`<ul>`、`<li>`标签来创建,如下所示: ```html <nav> <ul> <li><a href="#">首页</a></li> <li><a href="#">产品</a> <ul class="dropdown"> <li><a href="#">产品A</a></li> <li><a href="#">产品B</a></li> <li><a href="#">产品C</a></li> </ul> </li> <li><a href="#">关于我们</a></li> <li><a href="#">联系方式</a></li> </ul> </nav> ``` 接下来,使用CSS来设计导航栏下拉菜单的样式: ```css /* 导航栏样式 */ nav ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } nav li { float: left; } nav li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } /* 下拉菜单隐藏 */ .dropdown { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* 下拉菜单项样式 */ .dropdown li a { color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } /* 鼠标悬停时显示下拉菜单 */ nav li:hover .dropdown { display: block; } ``` 通过上述HTML结构和CSS样式,我们可以创建一个带有下拉菜单的导航栏。当鼠标悬停在带有`.dropdown`类的`<li>`元素上时,其子菜单(下拉菜单)会显示出来。这是通过在CSS中设置`.dropdown`的`display`属性为`block`来实现的。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值