滚动页面,实现导航栏固定在顶部(吸顶效果)

Vue 导航栏滚动定位功能实现,导航栏-滚动页面;滚动页面-导航栏; 本文档介绍了如何在 Vue.js 项目中实现一个具有滚动定位功能的导航栏组件。该组件可以根据页面滚动位置高亮显示对应的导航菜单项,并且点击菜单项时,页面可以平滑滚动到相应的内容区域。在Navbar:保存根级子菜单的 keys。activeMenu:保存当前选中菜单的 key。:监听滚动事件的方法,根据滚动位置计算当前应该高亮显示的导航菜单项。:点击导航菜单项时,滚动到相应的内容区域。步骤 3:监听滚动事件在Navbar组件的 mounted 钩子函数中,使用方法监听滚动事件,并在事件触发时调用方法。 阅读详情

内容说明
页面中有导航栏,当页面滚动超出一定范围时,它会固定在设置好的位置,一般是固定在顶部。
本文有两种方式实现,一种是sticky,兼容不好;另外一种是sticky的解体。。兼容效果万能

1、首先最简单的,是利用position的sticky属性

sticky
页面不动的情况下,它就像 position:relative;
而当页面滚动超出目标区域时,它表现的就像 position:fixed;,会固定在目标位置。

relative(相对定位)是指给元素设置相对于原本位置的定位,元素并不脱离文档流,因此元素原本的位置会被保留,其他的元素位置也不会受到影响。
而fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标并不是body,而是视图(屏幕内的网页窗口)本身。

主要用在对scroll事件的监听上;在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时(比如top:0);position:sticky这时的效果相当于fixed定位,固定在(top: 0)位置。

特点
1)该元素并不脱离文档流,仍然保留元素原本在文档流中的位置。
2)当元素在容器中被滚动超过指定的偏移值时,元素在容器内固定在指定位置。亦即如果你设置了top: 50px,那么在sticky元素到达距离相对定位的元素顶部50px的位置时固定,不再向上移动。
3)元素固定的相对偏移是相对于离它最近的具有滚动框的祖先元素,如果祖先元素都不可以滚动,那么是相对于可视窗口来计算元素的偏移量

用法

 position: sticky;
  position: -webkit-sticky;    // 兼容 -webkit 内核的浏览器
  top: 10px;                          // 必须设一个值,否则不生效

只需要三行代码就能实现吸顶效果
只是目前这个属性并不是W3C推荐的标准,所以目前兼容性还不是很好。
在这里插入图片描述
emmm…这一大片红 就看出sticky兼容性很差了

2、下面利用另外一种万能方式处理

说到了sticky粘性定位的原理 是结合了relative和fixed的特点
既然浏览器对sticky支持不友好,那就用代码把他俩动态切换达到结合的效果(relative和fixed是不分浏览器的)
思路:
前提时需要监听scroll事件
1)滚动条不动时,是静态相对定位状态relative
2)当页面滚动超出设置距离时,js改变样式属性 切换定位状态变成fixed,同时再给top设置一个值

css部分
// 滚动条不动时
.box{
position: relative;
height: 80px;
width: 100%;
z-index: 999;
}
// 监听到滚动条开始滚动后的样式
.box-active{
position: fixed;
top: 0;
}

js部分

// 监听事件
 window.addEventListener('scroll', function(){
 	let t = $('body, html').scrollTop();   // 目前监听的是整个body的滚动条距离
 	if(t>0){
		$('.box').addClass('box-active')
	}else{
		$('.box').removeClass('box-active')
	}
 })

这样就可以兼容所有浏览器了,也不是很麻烦,效果两种是一样的

微信小程序导航栏或菜单栏吸顶效果简单实现 微信小程序导航栏或菜单栏吸顶效果简单实现 思路: 1、获取导航栏初始位置距顶部的距离s1(通过获取页面标签方法) 2、监听页面的滑动,获取滑动距离s2(使用onPageScroll) 3、当s2>=s1时,给导航栏增加固定的样式(position:fixed) 代码: 1、导航栏 2、固定到顶部的样式 .fixed { position: fixed; top: 0; z-i... 阅读详情

相关推荐

实现页面滑动时固定顶部显示的功能(使用jQuery)

接着,我们使用 jQuery 编写了一段 JavaScript 代码,通过监听窗口滚动事件来实现固定顶部的效果。在网页开发中,有时我们希望当用户向下滑动页面时,顶部的导航栏或其他元素能够固定在页面的顶部,以提供更好的用户体验。我们假设我们的页面有一个固定在顶部的导航栏,其 id 为 “navbar”。现在,我们将使用 jQuery 来编写 JavaScript 代码,实现滑动页面时固定顶部显示的功能。然后,我们获取了导航栏的初始位置,并监听了窗口的滚动事件。在上面的代码中,我们将导航栏的。

ByteZenith的博客 569

滚动条滚动时头部导航栏固定在页面顶部的几种简单方法

一、使用css直接用固定定位position: fixed。 适合使用在导航栏有固定高度,避免导航栏下面的内容被遮盖。下面的盒子就需要调整top的距离。 示例代码: <style> *{ margin: 0; padding: 0; } p{ height: 500px; } section{ padding-top: 40px; } div{ height: 40px; width: 100%; color: white; background-color: crims

juxiaozheng的博客 2万+

实现响应浏览器滚动条事件的固定顶部导航栏(jQuery + JavaScript)

在本文中,我们将使用jQuery和JavaScript来实现一个固定于顶部的导航栏,并使其在浏览器滚动条事件中做出响应。这意味着当用户滚动页面时,导航栏将保持可见,并且在页面滚动到一定位置时会固定在顶部。在滚动条事件的处理程序中,我们获取滚动条的当前位置,并将其与导航栏的初始位置进行比较。上述HTML结构中,导航栏包含一个无序列表(ul),其中的每个列表项(li)都有一个链接(a)指向对应的页面部分(section)。导航栏将包含在一个固定的。类,我们定义了固定导航栏的样式,包括将其位置设置为固定(

CgbAutoit的博客 478

jQuery实现在鼠标滚动后导航栏保持固定(吸顶效果)

效果:鼠标向下滚动后,导航栏在屏幕上置顶固定。 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> * { padding: 0; margin: 0 } ul, li { ...

Angelo的自留地 2052

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 424

iOS自动化之打包-xcodebuild命令行打包.app并安装到ios模拟器

xcode xcodebuild xcrun ios模拟器 iOS UI自动化测试 ios自动打包安装到ios模拟器

z12347891的博客 5074

Vue实现根据页面滚动距离实现导航栏吸顶效果

Vue实现根据页面滚动距离实现导航栏吸顶效果 <template> <div id="app"> <div id="demo"></div> <div id="nav" :class="{ 'fix-nav': navBarFixed }"></div> <!-- 下拉验证是否吸顶 --> <p>1</p> <p>2</p>

weixin_47686269的博客 838

泛微E10 eBuilder低代码平台避坑指南:新手最容易犯的5个错误及解决方案

本文针对泛微E10 eBuilder低代码平台的新手开发者,总结了5个最常见错误及解决方案,包括表单联动配置、流程设计权限、动作流时序、数据加工类型转换和权限管理过度配置等问题。通过实战经验和代码示例,帮助开发者避开常见陷阱,提升开发效率。

weixin_30919429的博客 540

Vue 事件监听实现导航栏吸顶效果

所说的吸顶作用就是页面没有滑动之前。导航栏是这样:  当页面向上滑动后,导航栏始终固定在页面上方:  具体实现代码如下: mounted() { window.addEventListener("scroll", this.hidemenu); //监听滚动事件 }, 在methods中: hidemenu() { let scrollTop = ...

每文的博客 3138

osgEarth shapefile矢量生成三维模型案例 2.boston.earth

osgEarth shapefile矢量生成三维模型案例 2.boston.earth 波士顿城市建筑、路灯、公园、道路shp矢量生成三维模型案例。

qq_24934183的博客 3543

PC微信逆向:破解聊天记录文件!_读取别人pc微信msg文件

本文详细介绍了PC版微信数据库的解密方法,总结了前人经验并补充了关键细节。通过OllyDbg调试工具从微信内存中获取32字节加密密钥,使用C++结合OpenSSL库实现解密程序。重点解决了开发环境配置问题,包括Visual Studio项目设置和OpenSSL库的版本适配,将原本固定的数据库路径改为参数化输入,提高了工具的通用性。该方案为电子取证中的微信数据提取提供了完整的技术路径,避免了研究者重复探索已解决的问题。

zz96405784848的博客 9754

javascript页面返回顶部吸顶效果,导航栏吸顶,缓慢返回顶部,

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U...

weixin_45789271的博客 416

pip——【Fatal error in launcher: Unable to create process】的深度排查与修复指南

本文深度解析了Python包管理工具pip报错【Fatal error in launcher: Unable to create process】的根本原因与解决方案。该错误通常由Python解释器路径变更、虚拟环境损坏或多版本冲突导致。文章提供了从快速排查到彻底修复的完整指南,包括使用`python -m pip`命令绕过启动器、修复或重装pip、重建虚拟环境等核心方法,并给出了预防此错误的最佳实践。

weixin_29306261的博客 598

Vue 滚动导航栏固定(导航吸顶)

https://www.jianshu.com/p/3786ee55466c https://blog.youkuaiyun.com/mouday/article/details/106782511 https://blog.youkuaiyun.com/doinb_6/article/details/81872405 <!-- 吸顶 --> <template> <div class="scroll"> <div class="header"&gt

林中明月间丶 7306

LAMMPS模拟新合金没势函数?手把手教你用`pair_style hybrid`混合势函数(附FeCMnSiTi案例)

本文详细介绍了在LAMMPS中如何使用`pair_style hybrid`混合势函数模拟新型高熵合金(如FeCMnSiTi),解决缺乏现成势函数的问题。通过实战案例,涵盖参数查找、命令编写、错误排查等关键步骤,特别适合处理多组元体系的复杂相互作用。文章还提供了EAM势函数与LJ势的组合技巧,帮助研究者准确模拟合金性能。

weixin_30635053的博客 243

[SV]SystemVerilog状态机实现案例

本文介绍了SystemVerilog中状态机的实现方法。首先使用枚举类型定义状态(TOP_HIB、TOP_BG、TOP_LDO、TOP_NOR),然后通过三个主要任务实现状态机:1)格式化现态寄存器处理状态转换;2)描述状态转移条件,包括计时器和稳定时间判断;3)基于当前状态和输入信号确定次态。状态机在时钟边沿或复位时更新状态,实现了从休眠到正常工作状态的转换逻辑,包含电源稳定时间检测等关键功能。

元直的博客 2021

导航栏吸顶效果

html 仅实现导航吸顶效果(第一种) <div class="member_top" :class="navBarFixed == true ? 'navBarWrap' :''"> <qdd-icon class="icon-shezhi fr mr40" color="#fff" size="0.84rem"></qdd-icon> ...

weixin_42220039的博客 1344

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

css实现吸顶效果

css吸顶效果(例如:实现滚动页面导航栏固定在顶部) 主要针对需要吸顶的元素设置 /* 兼容chorme */ position: -webkit-sticky; position: sticky; top: 0px; 示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" cont

清音的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

导航栏滚动的时候置顶html,html鼠标滚动后导航栏吸顶效果

html鼠标滚动后导航栏吸顶效果* {padding: 0;margin: 0}ul, li {list-style: none;}a {text-decoration: none;color: #333;}.content {width: 1200px;margin: auto;}.menu {line-height: 60px;height: 60px;}.menu li {float: le...

weixin_33594195的博客 510

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

微信小程序实现吸顶效果

更新中...

青衫折扇的博客 1516

bootstrap 实现吸顶效果_js 实现吸顶效果 || 小程序的吸顶效果

小程序吸顶效果我是标题我是子标题导航一个导航一个导航一个导航一个我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容我是一个内容//index.js//获取应用实例const app =g...

weixin_26858217的博客 170

Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)

当页面向上滑动之后,导航栏始终固定在页面的上方。 具体代码: 写入事件监听,监听滚动条。 mounted () { // 事件监听滚动条 window.addEventListener('scroll', this.watchScroll) } 然后在 methods 中写入 watchScroll 方法。 methods: { watchScroll () { var scrollTop = window.pageYOffset || docu

weixin_38002190的博客 1109

vue 导航栏 吸顶

vue 导航栏 吸顶需求场景:完整代码: 需求场景: 公司需求:某个h5页面上有个导航栏需要在滚动到顶部时,吸顶固定在顶部;向下滚动时取消吸顶。 完整代码: 1.html模块,navBarFixed变量控制吸顶样式 // 导航栏模块 <div class="nav" :class="{'fixNav':navBarFixed}"> </div> <script> export default { data() { return { na

huxue12的博客 863
上一篇: vue 切换“页面”(路由)时保持滚动条回到顶部
下一篇: HTML5 head头部 meta标签属性整理
Crystal茜
博客等级 码龄9年 10粉丝 13原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值