jQuery 顶部导航跟随滚动条滚动固定浮动在顶部

yizhihongxing

这里为大家提供一种基于jQuery实现顶部导航随滚动条滚动固定浮动在顶部的方式。

首先,页面头部需要包含jQuery库的引用。使用CDN可行性较高,此处使用jQuery官方CDN。

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

然后,实现导航的固定和解除固定,我们需要用到jQuery的scroll事件以及一些CSS控制。

示例一,通过添加固定class来实现:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery顶部导航固定示例</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <style>
        /* 模拟页面滚动 */
        .content {
            margin-top: 100px;
        }
        /* 导航默认样式 */
        .nav {
            width: 100%;
            height: 50px;
            background-color: #F3F3F3;
            /* 使导航在顶部浮动 */
            position: fixed;
            top: 0;
        }
        /* 导航固定时的样式 */
        .nav-fixed {
            background-color: #FFF;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
        }
        /* 页面滚动时的钩子样式 */
        .scroll-hook {
            height: 50px;
        }
    </style>
</head>
<body>
    <!-- 导航条 -->
    <nav class="nav">
        <ul>
            <li><a href="#s1">Section 1</a></li>
            <li><a href="#s2">Section 2</a></li>
            <li><a href="#s3">Section 3</a></li>
        </ul>
    </nav>
    <!-- 内容区 -->
    <div class="content">
        <div class="scroll-hook"></div>
        <div id="s1">Section 1</div>
        <div id="s2">Section 2</div>
        <div id="s3">Section 3</div>
    </div>
    <!-- 导航条占位符 -->
    <div class="nav-placeholder"></div>
</body>
<script>
    $(window).scroll(function () {
        // 当前页面滚动位置
        var scrollH = $(window).scrollTop();
        // 导航条目标固定位置锚点
        var navTop = $(".scroll-hook").offset().top;
        // 添加或移除固定class
        if (scrollH >= navTop) {
            $(".nav").addClass("nav-fixed");
            $(".nav-placeholder").show();
        } else {
            $(".nav").removeClass("nav-fixed");
            $(".nav-placeholder").hide();
        }
    })
    // 根据导航宽度创建对应高度的占位符
    $(".nav-placeholder").height($(".nav").outerHeight(true));
</script>

在这个示例中,我们通过滚动事件监听页面滚动的位置,当页面滚动到导航条顶部时,给导航条添加.nav-fixed样式,相应地修改背景色和阴影样式,使其在页面顶部悬浮,同时通过占位符占据导航条原本在文档流中占据的空间。

示例二:通过改变导航条position属性值来实现。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery顶部导航固定示例</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <style>
        /* 导航默认样式 */
        .nav {
            width: 100%;
            height: 50px;
            background-color: #F3F3F3;
        }
        /* 导航固定时的样式 */
        .nav-fixed {
            background-color: #FFF;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
            /* 使导航在顶部浮动 */
            position: fixed;
            top: 0;
        }
        /* 模拟页面滚动 */
        .content {
            margin-top: 100px;
        }
    </style>
</head>
<body>
    <!-- 导航条 -->
    <nav class="nav">
        <ul>
            <li><a href="#s1">Section 1</a></li>
            <li><a href="#s2">Section 2</a></li>
            <li><a href="#s3">Section 3</a></li>
        </ul>
    </nav>
    <!-- 内容区 -->
    <div class="content">
        <div id="s1">Section 1</div>
        <div id="s2">Section 2</div>
        <div id="s3">Section 3</div>
    </div>
    <script>
        var navTop = $(".nav").offset().top;
        $(window).scroll(function () {
            var scrollH = $(window).scrollTop();
            if (scrollH >= navTop) {
                $(".nav").addClass("nav-fixed");
            } else {
                $(".nav").removeClass("nav-fixed");
            }
        });
    </script>
</body>
</html>

在此示例中,我们没有通过占位符将导航条原本所占的空间保留下来,并且没有手动设置占位符高度,而是通过初始时记录导航条顶部的位置,这样也便于实现导航条锁定滚动之后的位置,为之后的动画等样式易于设定提供方便。

使用哪种实现方法,取决于设计和个人偏好。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery 顶部导航跟随滚动条滚动固定浮动在顶部 - Python技术站

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

相关文章

  • JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】

    下面是关于“JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】”的完整攻略: 一、JavaScript表格隔行变色 1.实现原理 在使用JavaScript实现隔行变色的功能时,需要将表格中的奇数列和偶数列的背景颜色分别设置为不同的颜色值,通常采用白色和灰色以增强视觉效果。 2.具体实现步骤 以下是具体的实现步骤: 首先,首先需要获取…

    css 2023年6月10日
    00
  • 怎么用纯CSS制作带小三角的tooltip提示框

    以下是关于“怎么用纯CSS制作带小三角的tooltip提示框”的完整攻略。 步骤一:HTML 结构 首先,需要在 HTML 文件中定义一个元素,用于触发 tooltip 提示框的显示。以下是示例: <div class="tooltip-trigger">Hover me</div> 上述代码中,<div&g…

    css 2023年5月18日
    00
  • Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码第1/3页

    下面是关于“Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码”攻略的详细讲解: 1. 准备工作 在开始之前,我们需要先准备好一些必要的工作: 确认使用的Vue项目已经基于Vue-cli完成了初始化 安装Vue-router和Animate.css npm install vue-router –save npm install a…

    css 2023年6月10日
    00
  • CSS长度单位 px和pt的区别

    CSS长度单位 px 和 pt 是网页设计中常用的单位,它们用于指定元素的尺寸和位置。本文将详细讲解 px 和 pt 的区别,包括基本概念、使用方法、注意事项和示例说明。 1. 基本概念 px 和 pt 都是 CSS 中常用的长度单位,它们用于指定元素的尺寸和位置。其中,px 是像素单位,pt 是点单位。像素是屏幕上的最小显示单位,点是印刷中的最小显示单位。…

    css 2023年5月18日
    00
  • javascript关于运动的各种问题经典总结

    关于”javascript关于运动的各种问题经典总结”,我可以为你提供一份完整攻略,以下是具体内容: 一、运动的基本概念 运动是指物体在空间中沿着某条路径移动的过程,而在Web前端开发中,我们通常使用JavaScript来实现运动效果。 二、运动效果实现的方式 在Web前端开发中,我们有多种方式可以实现运动效果,其中包括: 1. 通过修改CSS样式来实现 这…

    css 2023年6月10日
    00
  • 模仿combox(select)控件,不用为美化select烦恼了。

    下面是针对模仿combox(select)控件的完整攻略: 1. 准备工作 在进行模仿combox(select)控件的过程中,需要先准备好以下工具: HTML CSS JavaScript 同时,在HTML文件中引入jQuery库,用来方便的操作DOM。 2. HTML 布局结构 我们准备使用下面所示的HTML结构来模仿combox(select)控件: …

    css 2023年6月10日
    00
  • Varnish配置文件详解(架构师之路)

    下面我为您讲解一下关于“Varnish配置文件详解(架构师之路)”的完整攻略。 什么是Varnish Varnish是一个基于缓存的HTTP加速器,它可以在WEB服务器和客户端之间扮演反向代理服务器的角色,缓存WEB服务器的响应,加速内容的传输,节约带宽,提高WEB应用程序的性能和可扩展性。 Varnish配置文件的基本结构 Varnish的配置文件是一个标…

    css 2023年6月9日
    00
  • Bootstrap CSS布局之列表

    以下是Bootstrap CSS布局之列表的详细攻略。 什么是Bootstrap CSS布局之列表? Bootstrap CSS布局之列表是指使用Bootstrap框架中的列表组件进行页面布局的一种方法。Bootstrap提供了多种列表样式,可以快速创建符合设计规范的列表。 如何使用Bootstrap CSS布局之列表? 下面我们来介绍如何使用Bootstr…

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