JS---封装getScroll函数 & 案例:固定导航栏
程序员文章站
2023-03-26 19:04:14
封装getScroll函数 1. 获取页面向上或者向左卷曲出去的距离的值 2. 浏览器的滚动事件 function getScroll() { return { left: window.pageXOffset || document.documentElement.scrollLeft || do ......
封装getscroll函数
1. 获取页面向上或者向左卷曲出去的距离的值
2. 浏览器的滚动事件
function getscroll() { return { left: window.pagexoffset || document.documentelement.scrollleft || document.body.scrollleft||0, top: window.pageyoffset || document.documentelement.scrolltop || document.body.scrolltop || 0 }; } //浏览器的滚动事件 window.onscroll = function () { console.log(getscroll().top); };
案例:固定导航栏
获取scrolltop值后判断高度大于导航栏的高,就设置样式固定住,同时,主页部分的margintop值,为防止浮动/脱标造成的影响,这个值设置为导航栏的高
<!doctype html> <html> <head lang="en"> <meta charset="utf-8"> <title></title> <style> * { margin: 0; padding: 0 } img { vertical-align: top; } .main { margin: 0 auto; width: 1000px; margin-top: 10px; } .fixed { position: fixed; top: 0; left: 0; } </style> </head> <body> <div class="top" id="toppart"> <img src="images/top.png" alt="" /> </div> <div class="nav" id="navbar"> <img src="images/nav.png" alt="" /> </div> <div class="main" id="mainpart"> <img src="images/main.png" alt="" /> </div> <script src="common.js"></script> <script> //获取页面向上或者向左卷曲出去的距离的值 function getscroll() { return { left: window.pagexoffset || document.documentelement.scrollleft || document.body.scrollleft || 0, top: window.pagexoffset || document.documentelement.scrolltop || document.body.scrolltop || 0 }; } //滑动事件 window.onscroll = function () { if (getscroll().top >= my$("toppart").offsetheight) { //设置第二个div的类样式 my$("navbar").classname = "nav fixed"; //设置第三个div的maintop值 my$("mainpart").style.margintop = my$("navbar").offsetheight + "px"; } else { my$("navbar").classname = "nav"; my$("mainpart").style.margintop = "10px"; } }; </script> </body> </html>
上一篇: Go基础之数组
下一篇: JS---变速动画函数封装