js实现导航固定定位

 <!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-UA-Compatible" content="ie=edge">
<title>内容滚动事件</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
html,body{
width: 100%;
}
.header{
height: 130px;
background: red;
font: 700 28px/130px serif;
color: aqua;
text-align: center;
}
.nav{
height: 60px;
width: 100%;
background: green;
font: 700 24px/60px serif;
color: rgb(240, 240, 14);
text-align: center;
}
ul{
display: inline-block;
}
li{
float: left;
margin-left: 60px; }
.content1,
.content2,
.content3 {
height: 500px;
background: #DFFCB5;
font: 400 60px/800px serif;
color: #52524E;
text-align: center;
}
.content2 {
background: #FFE1B6;
}
.content3 {
background: #CDE3EB;
}
.fixed {
position: fixed;
top: 0;
left: 0;
} </style>
</head>
<body>
<div class="header" id="header">
顶部广告栏
</div>
<div class="nav" id="nav">
<ul>
<li>主页</li>
<li>商城</li>
<li>产品展示</li>
<li>服务</li>
<li>关于我们</li>
</ul>
</div>
<div class="content1" id="con">
内容1
</div>
<div class="content2">
内容2
</div>
<div class="content3">
内容3
</div>
</body>
</html>
<script>
var header = document.getElementById('header');
var nav = document.getElementById('nav');
var content = document.getElementById('con'); // 封装一个scrollTop兼容性函数
function getScrollTop() {
return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
} // 给页面注册滚动事件
window.onscroll = function() {
// 判断广告栏header 与 滚动的scrollTop的值
// 当scrollTop > header高度的时候 让导航栏 nav 固定定位
var scrollTop = getScrollTop();
if (scrollTop >= header.offsetHeight) {
// 样式中有的类名这里一定不要忘了加上去,否则就会被替换掉
nav.className = "nav fixed";
// 一旦标题栏设置了固定定位之后,就脱离标准流了,下面的内容就会顶上来,
// 所以要手动给下面的内容添加一个margin-top,将导航栏的位置留下来
content.style.marginTop = nav.offsetHeight + "px";
} else {
// 当scrollTop < header高度的时候 让导航栏 nav 恢复到原来的位置
// nav 取消固定定位,恢复到原来的位置,所以下面内容的margin-top也要去掉
nav.className = "nav"; // 去掉固定定位的样式,保留之前的样式
content.style.marginTop = 0;
}
}; </script>

js实现导航固定定位的更多相关文章

  1. pc端监听屏幕实现导航固定定位

    要点:占位符 js,监听屏幕滚动事件,当滚动条距离浏览器顶部的距离 大于 要固定定位开始以下元素的距离,则给要固定元素添加fixed样式. 初始化方法时,要给占位符添加样式 function sort ...

  2. js 设置导航固定

    <div id="nav"> .... </div> function Add_Data() { var top = $("#header-nav ...

  3. 滚动条大于120px时,判断pc端的情况下,导航条固定定位

      //滚动条大于120px时,判断pc端的情况下,导航条固定定位 $(window).scroll(function(){ var viewWidth=$(document).width() var ...

  4. Bootstrap 固定定位(Affix)

    来自:慕课网 http://www.imooc.com/code/5396 Affix 效果常见的有以下三种: ☑ 顶部固定 ☑ 侧边栏固定 ☑ 底部固定 固定定位--声明式触发固定定位 Affix ...

  5. 固定定位 z-index iconfont的使用 043

    固定定位  现象 脱标 提升层级  将盒子固定住 参考点 浏览器的左上角 : <!DOCTYPE html> <html lang="en"> <he ...

  6. jquery的固定定位效果

    今天做了个固定定位的效果.比如对导航需要进行固定定位效果: 当没有滚动到导航下面,导航正常显示. 当滚动到导航下面,导航就固定到顶部. 这个效果使用了jquery的方法实现,具体思路为: 1)首先获取 ...

  7. jQuery实现页面导航内容定位效果,并支持内容切换

    需求 页面向下滚动时,需要将顶部的搜索栏信息和导航菜单吸顶,并且,搜索栏信息和导航菜单之间可以切换. 效果 https://www.iguopin.com/index.php?m=&c=ind ...

  8. 实现 DIV 固定定位在网页主体部分最右侧

    position:fixed 相对于窗口的固定定位,这个窗口可理解为可视窗口,除了浏览器自己的东西,剩下的就是这个可视窗口.而大部分的网页都是窄屏设计,比如说网页主体部分固定宽 1200px,或者自适 ...

  9. jquery 导航固定的一个实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. CNN卷机网络在自然语言处理问题上的应用

    首先申明本人的英语很搓,看英文非常吃力,只能用这种笨办法来方便下次阅读.有理解错误的地方,请别喷我. 什么是卷积和什么是卷积神经网络就不讲了,自行google.从在自然语言处理的应用开始(SO, HO ...

  2. redis_1 安装和简单使用

    前言: mysql 数据库:数据以“文件形式存储在硬盘”里面.硬盘的存取速度很慢.数据库是一个系统中最占用资源的部分.当sql语句比较复杂(关联的表比较多的时候),每执行一次就会消耗大量的资源.倘若一 ...

  3. java使用Thumbnailator处理图片

    Thumbnailator是一款不可多得的处理图片的第三方工具包,它写法简单到让人无法相信,Java本身也有处理图片压缩的方法,但是代码冗长到让人痛不欲生,在篇末会给出Java本身的实现方式,做下对比 ...

  4. 《UML精粹》第三章 -类图的基本概念

    第三章 类图:基本概念 类图可用来描写叙述系统中各种对象的类型.也可描绘出对象间各种各样的静态关系.此外.类图中也能够秀出类的性质(property)与操作(operation),以及可应用到对象间连 ...

  5. 使用SecueCRT在本地主机与远程主机之间交互文件

    名词解释 本地主机:执行SecueCRT,以管理远程Linux或Unix的机器(一般为Windows系统) 远程主机:被SecueCRT进行管理控制的机器(一般为Linux或Unix) 1.开启SFT ...

  6. 嵌入式linux和pc机的linux对照

    linux本身具备的非常大长处就是稳定,内核精悍,执行时须要的资源少.嵌入式linux和普通linux并无本质差别. 在嵌入式系统上执行linux的一个缺点就是其核心架构没有又一次设计过,而是直接从桌 ...

  7. Java推断文本文件编码格式以及读取

    假设不是约定好的,要想解析txt文件就须要知道文件编码类型,因为文件编码类型众多.比如UTF-8,GBK.UTF-16,GB2312等等. 事实上有简单的办法.仅仅须要这样就能够了 String fi ...

  8. 一个关于 UIPickerView 的 bug

    首先,我下描写叙述一下bug的发生情况: 在使用UIPickerView实现选择城市的时候.出现这样一个Bug 1.在iOS 6的系统上 2.Picker的数据上省份一栏选择了"香港&quo ...

  9. 杭电 1016 Prime Ring Problem

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  10. Linux 下配置,安装Hadoop

    1.从官网上下载hadoop-2.4.1.tar.gz,我的版本为hadoop-2.4.1,可在http://pan.baidu.com/s/1cLAKCQ 下载. 2.解压hadoop-2.4.1. ...