1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 原生JavaScript实现导航栏吸顶功能

原生JavaScript实现导航栏吸顶功能

时间:2020-01-25 11:21:41

相关推荐

原生JavaScript实现导航栏吸顶功能

原生JavaScript实现导航栏吸顶功能

这个功能涉及到几个函数的运用:

getBoundingClientRect():用于获取元素相对于视窗的位置集合,包含top,right,bottom,left等。

createElement():用于创建新的元素或者标签。

parentNode: 返回父级节点。

replaceChild(A,B):将B节点替换为A节点。

A.appendChild(B):把B中的元素添加到A。

offsetTop:表示距离浏览器顶部的距离。

scrollTop:表示距离上一层元素的上边距的距离。

废话不多说,上代码!!!

html:

<div class="warp"><div class="header" > <h1>测试标题</h1><p>测试测试测试测试测试测试测试测试。。。</p></div><div id="nav" ><ul><li>测试测试</li><li>测试测试</li><li>测试测试</li><li>测试测试/li><li>测试测试</li></ul> </div> <div class="content"><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p><p>测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p></div>

css:

*{margin: 0;padding: 0;}.warp{width: 100%;height: 1600px;background-color: aquamarine;}.header{width:635px; margin: 0 auto;height: 74px;}#nav{width: 635px; height:45px;margin: 0 auto;}#nav li{float: left;list-style: none;width: 127px;text-align: center; background-color: blueviolet;height: 35px;}#nav li{line-height: 35px;color: #fff;}.content{width: 635px; margin: 0 auto; margin-top: 40px; text-align: center;}.fix{position: fixed; top: 0; left: 0;right:0;}

js:

var tit = document.getElementById("nav");var rect = tit.getBoundingClientRect(); var inser = document.createElement("div") ; tit.parentNode.replaceChild(inser,tit); inser.appendChild(tit); inser.style.height = rect.height + "px";var titleTop = tit.offsetTop; document.onscroll = function(){var btop = document.body.scrollTop||document.documentElement.scrollTop; if(btop>titleTop){tit.className = "fix";}else{tit.className = "clearfix";}}

仅供参考,欢迎指点!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。