Js效果:楼层跳跃
2018-01-22 19:54
218 查看
个人博客新地址:→点我♪(^∀^●)ノ
实现思路
通过scroll的距离来判断当前的展示区域属于哪一个楼层布局
Html
<ul class="nav"> <li>享受品质</li> <li>服饰美妆</li> <li>家电手机</li> <li>电脑数码</li> <li>3C运动</li> </ul> <ul class="content"> <li>享受品质</li> <li>服饰美妆</li> <li>家电手机</li> <li>电脑数码</li> <li>3C运动</li> </ul>
CSS
<style> *{margin:0;padding:0;} li{ list-style: none; color: #FFFFFF; } .nav{ position: fixed; left: 15px; top: 80px; } .nav li{ width: 70px; height: 40px; line-height: 40px; text-align: center; font-size: 14px; cursor: pointer; background: #666; color: #FFFFFF; } .nav .now{ background: lightcoral; } html, body{ height: 100%; } ul{ height: 500%; } .content li{ height: 20%; font: 100px "Microsoft YaHei"; text-align: center; } </style>
JS实现
<script> var navLiArr = $('ul')[0].children; var contentLiArr = $('ul')[1].children; //给每个不同楼层添加不同的颜色 var colorArr = ['lightgreen','lightseagreen','lightskyblue', 'lightgray','lightyellow']; for (var i=0; i<contentLiArr.length;i++){ contentLiArr[i].style.background = colorArr[i]; } // 点击转到对应的楼层 for (var i=0;i<navLiArr.length;i++){ navLiArr[i].index=i; navLiArr[i].onclick=click; } function click () { //改变样式 var parent=this.parentNode; parent.isclick=true; for(var j = 0; j <navLiArr .length; j++ ){ navLiArr[j].className=''; } this.className='now'; var dis=this.index*document.body.offsetHeight*1; clearInterval(window.timer); window.timer=setInterval(function () { var pos=(dis-scroll().top)/10; pos=pos>0?Math.ceil(pos):Math.floor(pos); window.scrollTo(0,scroll().top+pos); if(dis==scroll().top){ clearInterval(window.timer); parent.isclick=false; } }) } window.onscroll=function (ev) { // console.log(ev) if(!navLiArr[0].parentNode.isClick){ //滚动到相应板块 改变样式 //获取滚动距离 scroll()。top var dis=document.body.offsetHeight; var topDis=scroll().top; var t=topDis/dis; //t 与 navLiArr[i].index 比较 t=Math.round(t); console.log(t); for(var k = 0; k <navLiArr .length; k++ ){ navLiArr[k].className=''; } navLiArr[t].className='now'; } } </script>
相关文章推荐
- 常见的js效果(一)之固定楼层导航栏
- JS实现留言板功能[楼层效果展示]
- JS打造的弹性跳跃的图片效果且感应鼠标放大
- js实现楼层效果的简单实例
- 使用js实现楼层跳跃
- js实现留言板-楼层效果展示
- JavaScript原生代码实现楼层跳跃(js部分有注释)
- js 动图效果
- JS实现响应鼠标点击动画渐变弹出层效果代码
- JS组件Bootstrap实现弹出框效果代码
- 使用Js来让IE支持png图片透明效果
- JS-事件之鼠标、键盘都能控制的下拉选框效果
- 纯JS制作的窗户雨滴效果
- JS实现环形进度条(从0到100%)效果
- Jquery 酷炫 用户 选择效果(js 实现带图片的 select 效果)
- js实现鼠标吸附粒子效果和星璇效果
- js图片产品翻转效果
- js分页效果
- JS实现的简单折叠展开动画效果示例