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

这里为大家提供一种基于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日

相关文章

  • CSS基础详解

    CSS基础详解 概述 CSS是一种样式表语言,它用于描述HTML或XML(包括SVG、XHTML等)文档的表现。CSS可以控制页面的布局、字体、颜色、背景与其它效果。使用CSS可以将页面样式与页面内容(HTML代码)分离。在网页开发中,不仅需要掌握HTML语言,还需要熟悉CSS语言。 基础语法 CSS的基础语法由选择器和声明块组成,如下所示: 选择器 { 属…

    css 2023年6月9日
    00
  • 网页布局教程 掌握CSS网页布局属性

    网页布局教程 掌握CSS网页布局属性 概述 在网页设计中,布局是一个至关重要的环节。CSS作为一种样式语言,可以用来控制网页布局。本篇攻略将详细介绍CSS常用的布局属性,帮助您更好地掌握网页布局。 盒模型 在CSS中,页面中的元素可以看做矩形盒子,每个矩形盒子都由四部分组成,分别是:内容(content)、填充(padding)、边框(border)、外边距…

    css 2023年6月10日
    00
  • CSS常用样式简单的总结包括定位、显示等属性

    下面是详细讲解“CSS常用样式简单的总结包括定位、显示等属性”的完整攻略。 1. CSS样式的基本概念 在网页布局中,CSS样式主要用于控制网页元素的外观和排列方式,包括文本样式、盒模型、定位以及布局等。在样式定义时,常用的属性有字体、背景、外边距、内边距、边框、高度、宽度、定位、浮动等。 2. CSS定位 CSS定位主要用于控制元素的位置,包括绝对定位、相…

    css 2023年6月9日
    00
  • dreamweaver教程:怎么解决8.0中CSS应用无效

    Dreamweaver教程:怎么解决8.0中CSS应用无效 Dreamweaver是一款非常流行的网页设计工具,但在使用过程中,有时会遇到CSS应用无效的问题。本攻略将详细讲解Dreamweaver教程:怎么解决8.0中CSS应用无效的方法,包括基本原理、解决方法和示例说明。 1. 基本原理 在Dreamweaver 8.0中,CSS应用无效的原因可能有很多…

    css 2023年5月18日
    00
  • css核心基础总结篇(推荐)

    CSS核心基础总结篇 CSS是前端开发中不可或缺的一部分,用于定义网页的样式和布局。以下是CSS的核心基础知识和学习总结: CSS基础 CSS选择器 CSS选择器用于选择需要应用样式的HTML元素,例如: p { color: red; } CSS属性 CSS属性用于定义HTML元素的样式,例如: p { color: red; } CSS样式表 CSS样式…

    css 2023年5月18日
    00
  • 父div高度不能自适应子div高度的解决方案

    解决父div高度不能自适应子div高度的问题,通常有以下几种方式: 给父div设置高度 如果父div中只有一个子元素或者子元素比较少且固定,可以直接给父div指定固定高度,以保证其高度可以容纳所有子元素。例如: <div class="parent" style="height: 200px;"> <…

    css 2023年6月9日
    00
  • jQuery弹出层插件简化版代码第2/2页

    来详细讲解一下“jQuery弹出层插件简化版代码第2/2页”的完整攻略。 一、简介 本插件是基于jquery的弹出层插件,可以快速为网站添加各种弹出框效果。本文主要讲解该插件的使用方法。 二、使用方法 1. 引入必要的文件及初始化插件 需要在html文件中引入jquery、jquery-popup.js和jquery-popup.css等文件。 <li…

    css 2023年6月10日
    00
  • CSS实现渐变色边框(Gradient borders)的5种方法

    CSS实现渐变色边框,可以通过以下5种方法来实现: 1. 使用background-image和linear-gradient创建渐变边框 使用background-image和linear-gradient来创建渐变边框,可以先为元素设置一个透明的border属性,然后为元素的背景设置渐变背景,从而实现渐变边框。 .gradient-border { bo…

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