当前位置: 首页 > news >正文

纯 javascript 半自动式下滑一定高度,导航栏固定

滚动条下滑一定高度时,固定指定 ID 的导航条。

使用方法:
1、修改 FixTop() 中 id 为需要固定导航的相应 id ;
2、修改 FixTop() 中 offsettop 为需要固定对象导航距离顶部的距离;

效果:

当滚动条下滑滚动超过导航栏位置时,导航栏固定 (移除原有,添加「position:fixed」属性并添加 「fixtop」 类);

当滚动条上滑高度低于原来导航高度时,导航栏变成默认效果(移除原有,添加「position:static」属性并添加 「fixnone」类)。

function FixTop(obj,offsettop){
  var obj = document.getElementById(obj);
  var objOffset = obj.offsetTop;
  // alert('固定对象距离顶部高度为' + objOffset);
  //去掉 alert 前面的双斜杠,然后在页面中刷新并向下滚动,页面就弹出 offsettop 的高度。
  var bodyScrollOffset = document.body.scrollTop;
  var Result = objOffset - bodyScrollOffset;
  sessionStorage.objoffset = objOffset;
  // console.log(Result);
  if (Result < 0) {
    if (bodyScrollOffset < offsettop) {
      obj.style.position = 'static';
      obj.setAttribute('class', 'fixnone');
    }else{
      obj.style.position = "fixed";
      obj.style.top = 0;
      obj.setAttribute('class', 'fixtop');
    }
  }else{
    obj.style.position = 'static';
    obj.setAttribute('class', 'fixnone');
  }
}
window.onscroll = function(){
  FixTop('id',offsettop);
}

效果示例:效果戳我。

当前做法已经不建议,建议使用最新效果:新地址

相关文章:

  • 记录下来,自己要用的东西
  • 实战json、html、jsx的互转
  • Copperhead OS —— Android 的安全增强版本!
  • 该离开了吧,程序员辞职的那些理由
  • 2017最新企业Shell面试题及企业运维实战共30+5道案例+变量符号
  • Dubbo -- 系统学习 笔记 -- 入门
  • 数据库案例集锦 - 开发者的《如来神掌》
  • ffmpeg在android上输出滑屏问题处理
  • 浅谈hibernate、ibatis、myibatis之间的区别?
  • U-Mail邮件系统何以誉为信息整合中转枢纽
  • 编译使用tensorflow c版本动态链接库
  • Curator的使用
  • 开创学习的四核时代-iTOP-4412开发板开源硬件平台
  • nj04---事件回调函数
  • Oracle锁表查询和解锁方法
  • hexo+github搭建个人博客
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6--对象的扩展
  • gitlab-ci配置详解(一)
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • KMP算法及优化
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • PAT A1017 优先队列
  • Spring框架之我见(三)——IOC、AOP
  • SwizzleMethod 黑魔法
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 我的面试准备过程--容器(更新中)
  • 小程序测试方案初探
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ###C语言程序设计-----C语言学习(3)#
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (C语言)字符分类函数
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)计算机毕业设计高校学生选课系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (四)汇编语言——简单程序
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)Mysql的优化设置
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)Linux网络编程入门
  • .axf 转化 .bin文件 的方法
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET面试题(二)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • ??javascript里的变量问题
  • @EnableWebMvc介绍和使用详细demo