原生js实现随着滚动条滚动,导航会自动切换的效果
来源:互联网 发布:汉字笔顺查询软件 编辑:程序博客网 时间:2024/06/05 07:31
最近学习前端,把前面用原生js写的一段有关tab切换效果的代码贴上,实现的效果比较简陋,请大家见谅
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>随着滚动条滚动的Tab切换</title><style>*{ list-style:none; margin:0; padding:0; text-decoration:none; font-family:'Microsoft YaHei';}li{ width:100px; height:50px; line-height:50px; float:left; border-right:2px solid #eee; text-align:center; cursor:pointer;}ul{ width:1200px; margin:0 auto;}.nav{ height:52px; width:100%; background:#f5f5f5;}.nav .cur{ background:#fff; border-top:2px solid #1a92cf; color:#1a92cf;}.fixed{ position:fixed; top:0; left:0;}a{ color:#505050;}</style></head><body><br/><br/><br/><br/><br/><br/><br/><div class="nav" id="nav-container"> <ul id="nav-box">` <li class="cur">text1-nav</li> <li>text2-nav</li> <li>text3-nav</li> </ul></div><div id="text"> <div style="width:100%;height:500px;background:green;text-align:center;">text1</div> <div style="width:100%;height:500px;background:yellow;text-align:center;">text2</div> <div style="width:100%;height:500px;background:blue;text-align:center;">text3</div> </div><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><script>var navContainer = document.getElementById("nav-container");var navBox = document.getElementById("nav-box");var text = document.getElementById("text");var navBoxChild = navBox.children;var textChild = text.children;var num = navContainer.offsetTop;var a = navContainer.offsetHeight;window.onscroll = function(){ var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; if(scrollTop >= num){ navContainer.className = "nav fixed"; text.style.paddingTop = a +"px"; }else{ navContainer.className = "nav"; text.style.paddingTop = ""; } //当导航与相应文档接触的时候自动切换 //method1 for(var i=0;i<navBoxChild.length;i++){ if( scrollTop + a >= textChild[i].offsetTop){ for(var j=0;j<navBoxChild.length;j++){ navBoxChild[j].className = ""; } navBoxChild[i].className = "cur"; } }};for(var i=0;i<navBoxChild.length;i++){ var interval; navBoxChild[i].index = i; navBoxChild[i].onclick = function(){ var self = this; clearInterval(interval); interval = setInterval(function(){ if(document.body.scrollTop + a<=textChild[self.index].offsetTop){ document.body.scrollTop += 40; if(document.body.scrollTop + a>=textChild[self.index].offsetTop){ document.body.scrollTop = textChild[self.index].offsetTop-a; clearInterval(interval); } }else{ document.body.scrollTop /= 1.1; if(document.body.scrollTop + a<=textChild[self.index].offsetTop){ document.body.scrollTop = textChild[self.index].offsetTop-a; clearInterval(interval); } } },40); };}</script> </body></html>
大家有兴趣的可以复制下看下效果,谢谢大家浏览!
0 0
- 原生js实现随着滚动条滚动,导航会自动切换的效果
- js实现滚动条效果
- JS原生实现自定义滚动条
- 原生 js 实现全屏滚动效果
- Js实现下拉滚动条(导航滚动数值>100的话自动吸附在TOP上)
- 原生Js无缝滚动效果的简单实现
- js 滚动条往下滚动时自动切换菜单栏按钮
- JQ带滚动效果的导航条
- iOS:导航条滚动透明度随着tableView的滚动而变化
- velocity.js实现页面滚动切换效果
- js原生滚动条动画
- JS原生之----滚动条
- 原生JS自定义滚动条
- div+js实现自制滚动条效果
- js实现动态拖动滚动条效果
- 滚动条效果实现
- jquerymobile实现手机导航条的滚动
- 使JTextArea 的滚动条随着记录的增加自动滚动到最后一行
- Spring AOP原理及拦截器
- pthread的互斥量和自旋锁
- 原生代码封装好的增删改查
- tjut 4662
- select和poll服务器实现(Linux)
- 原生js实现随着滚动条滚动,导航会自动切换的效果
- 文章标题
- hdoj2717Catch That Cow
- C语言易忽视的错误
- 多项式求和
- SVD 详解 与 spark实战
- HDU--1233最小生成树之kruskal算法
- Laravel 5.2中记录运行时 SQL
- 用c++编写一段完整代码,要求判断一个进程(例如qq.exe)是否存在,若存在,输出存在,不存在就输出不存在。