Document

* {

margin: 0;

padding: 0

}

.top {

height: 168px;

}

img {

vertical-align: top;

}

.main {

margin: 0 auto;

width: 1000px;

margin-top: 0px;

}

.fixed {

position: fixed;

top: 0;

left: 0;

}

// 页面滚动,滚动top的高度后,就实现导航栏固定,否则导航栏不固定

/*

思路分析

1. 页面增加滚动事件:window.onscroll

2. 滚动事件处理

2.1 获取页面滚动高度:window.pageYOffset

2.2 获取top的高度

2.3 判定:滚动的距离与top高度大小

2.3.1 如果大于:导航栏固定;nav.classList.add('fixed');

2.3.2 如果小于等于:导航栏不固定:nav.classList.remove('fixed');

*/

let a = document.getElementById('mainPart');

let b = document.getElementById('navBar');

// 先拿到mainPart的本身的marginTop值

let mainMargin = parseInt(getComputedStyle(a)['marginTop']);

console.log(mainMargin);

// console.log(b.offsetHeight);

// 1. 页面增加滚动事件:window.onscroll

window.onscroll = function () {

// 2. 滚动事件处理

// 2.1 获取页面滚动高度:window.pageYOffset

// 2.2 获取top的高度

let topPart = document.getElementById('topPart');

let navBar = document.getElementById('navBar');

let mainPart = document.getElementById('mainPart');

// console.log(topPart.offsetHeight, navBar.offsetHeight);

// 2.3 判定:滚动的距离与top高度大小

if (window.pageYOffset > topPart.offsetHeight) {

// 2.3.1 如果大于:导航栏固定;nav.classList.add('fixed');

navBar.classList.add('fixed');

// 细节:navBar脱标后,没有高度,导致main会顶上去

// 解决方案:给main增加一个marginTop属性,值是自己原来的值 + navBar的高度

mainPart.style.marginTop = mainMargin + navBar.offsetHeight + 'px';

} else {

// 2.3.2 如果小于等于:导航栏不固定:nav.classList.remove('fixed');

navBar.classList.remove('fixed');

// 不固定导航:减去导航栏的高度(回到原始状态)

mainPart.style.marginTop = mainMargin + 'px';

}

};

一键复制

编辑

Web IDE

原始数据

按行查看

历史

html右侧导航栏固定,固定导航栏.html相关推荐

  1. android 固定底部导航,如何设置android底部导航栏位置固定在android

    请帮我设置底部导航栏位置固定在底部, ,因为我在输入editText字段时遇到问题,底部导航栏向上移动并覆盖其他领域如何设置android底部导航栏位置固定在android 代码: xmlns:and ...

  2. vue---museui解决底部/顶部导航栏位置固定问题

    移动端页面通常会包括顶部导航或底部导航栏,导航栏一般固定在页面上. 问题描述如下: 导航栏未固定,顶部红色导航栏会随着页面下滚而消失,底部的蓝色导航栏会根据页面内容变化而上下浮动,视觉体验非常不好. ...

  3. html固定顶部导航栏和底部导航栏

    固定顶部导航栏,在样式(css)中加入以下代码 position: fixed;z-index: 1000;right: 0;bottom: 0;left: 0px;top: 0px;width: 1 ...

  4. React Native 的顶部导航栏和底部导航栏目

    说来也是惭愧,本来关于底部导航栏,我已经写过一篇博客,只不过那篇更偏向于入门一些,当时一实现功能之后就迫不及待的分享给大家了.地址在这儿:http://blog.csdn.net/LJFPHP/art ...

  5. 咋把计算机程序固定到任务栏中,win10我的电脑固定到任务栏如何操作_win10怎么把我的电脑放到任务栏...

    有些用户可能不知道win10系统中我的电脑是什么,其实我的电脑就是电脑桌面上的此电脑程序,对此有用户觉得我的电脑图标放在桌面上很是碍眼,因此就想要将其固定到任务栏中来,那么win10我的电脑固定到任务 ...

  6. Android中导航栏之自定义导航布局

    Toolbar系列文章导航 Android中导航栏之Toolbar的使用 Android中导航栏之溢出菜单OverflowMenu Android中导航栏之搜索框SearchView Android中 ...

  7. 怎么把计算机桌面的文件固定到任务栏,win10如何将桌面我的电脑固定到任务栏 - 卡饭网...

    如何将win10系统电脑上的此电脑固定到任务栏上 如何将win10系统电脑上的此电脑固定到任务栏上 我们经常将一些自己常用的软件固定到电脑的任务栏中,方便我们下次快速打开.当我们需要将此电脑固定到任务 ...

  8. 【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )

    文章目录 一.盒子测量及样式 1.总体盒子测量及样式 2.左侧盒子测量及样式 3.中间盒子测量及样式 4.右侧盒子测量及样式 二.横版导航栏代码示例 1.HTML 标签结构 2.CSS 样式 3.显示 ...

  9. Win11任务栏怎么固定?

    我们一般都会在电脑任务栏上固定一些常用的应用程序,方便下次快速打开,但是升级Win11系统之后,要怎么将应用程序固定到任务栏了呢?下面小编就来介绍一下Win11任务栏的固定教程. win11怎么固定任 ...

最新文章

  1. Linux02-帮助手册
  2. VTK:图片之ImageCityBlockDistance
  3. Ubuntu14.04安装pip及配置
  4. ubuntu16.04中如何将python3设置为默认
  5. 使用TensorFlow.js进行AI在网络摄像头中翻译手势和手语
  6. 表格中序号怎计算机课程视频,【答疑】在Excel表格里输入了文字后怎么下拉顺序号啊?如何在表格里添加序号? - 视频教程线上学...
  7. ok计数器使用教程_Qt ModelView教程(二)——应用举例
  8. 2016中国大学生程序设计竞赛(长春)
  9. c++11中using的使用
  10. 后端要学MySQL_后端程序员需要掌握MySQL数据库吗
  11. 【VSCode PlatformIO】 STC单片机开发头文件制作与添加方法
  12. 【vue-router源码】四、createRouter源码解析
  13. java毕业设计选题基于JavaWeb实现疫情环境下校园宿舍|寝室管理系统
  14. 天猫Java岗位薪资及职位描述!月薪 40000 的Java程序员,需要掌握哪些技术?
  15. 你永远不知道用户怎么使用你的产品
  16. 程序开发团队之团队精神篇(转)
  17. python用表格中的数据画柱状图_[python]统计excel表格某列中每项出现的次数并画柱状图...
  18. matlab多孔介质蒸发,随机生成多孔介质matlab程序.doc
  19. B站视频内容复利,品牌投放中小UP主的营销机遇在哪?
  20. 笔记整理--Linux守护进程

热门文章

  1. python初学者——1、变量
  2. 在哪里找java工作_去哪里找java工作比较好找?
  3. 海康威视的设备怎么进行设置
  4. 推广图书赚佣金,10个就够一套《大话计算机》
  5. List<String,Object>针对于集合中Map某个属性值求和
  6. 8、【蜗牛爬井】井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
  7. NPOI 设置excel 边框
  8. STP生成树原理及选举规则举例
  9. 【iTerm】教程 常用命令
  10. 2022年网络规划设计师考试大纲