用LiftEffect.js快速实现楼层点亮的一个案例
2018-08-03 15:01
901 查看
LiftEffect.js下载地址:http://www.daimabiji.com/mainmenus/4075.html
要求头部卷去时导航栏固定,点击不同导航到达不同楼层,楼层变化时导航栏变化。
最终效果大致如下图:
HTML使用演示:
[code]<div class="ttt"> <div class="shop-left-tt" id="shopnav"> <span class="lift_item hoverqq">点我到第一层</span> <span class="lift_item">点我到第二层</span> <span class="lift_item">点我到第三层</span> <span class="lift_item">点我到第四层</span> <span class="lift_item">点我到第五层</span> </div> </div> <div class="f1"> 第一层的内容 <div class="f2"> 第二层的内容 <div class="f3"> 第三层的内容 <div class="f4"> 第四层的内容 <div class="f5"> 第五层的内容
JS调用:
[code] <script type="text/javascript"> $(function(){ LiftEffect({ "control1": ".ttt", //侧栏电梯的容器 "control2": ".shop-left-tt", //需要遍历的电梯的父元素 "target": [".f1",".f2",".f3",".f4",".f5"], //监听的内容,注意一定要从小到大输入 "current": "hoverqq" //选中的样式 }); }) </script>
根据自己需求修改了部分效果后的LiftEffect.js代码段:
[code] // LiftEffect({ // "control1": ".lift2", //侧栏电梯的容器 // "control2": "#ccc", //需要遍历的电梯的父元素 // "target": [".dianti1",".dianti2",".dianti3"], //监听的内容,注意一定要从小到大输入 // "current": "xuanzhong" //选中的样式 // }); function LiftEffect(json){ var array=[]; for(var i =0; i<json.target.length;i++){ var t = $(json.target[i]).offset().top; array.push(t); } function Selected(index){ $(json.control2).children().eq(index).addClass(json.current).siblings().removeClass(json.current); } $(window).on("scroll",Check); function Check(){ var wst = $(window).scrollTop(); var key =0; var flag = true; for(var i =0; i<array.length; i++){ key++; if(flag){ if(wst >= array[array.length-key]-150){ var index = array.length-key; flag = false; }else{ flag=true; } } } Selected(index); } $(json.control2).children().on("click",function(){ $(window).off("scroll"); var index = $(this).index(); Selected(index); var flag = true; for(var i =0; i<array.length; i++){ if(flag){ if(index == i){ $("html,body").stop().animate({ "scrollTop": array[i]-50 },500,function(){ $(window).on("scroll",Check); }); flag = false; }else{ flag=true; } } } }); }
阅读更多
相关文章推荐
- 一个自定义模态窗口的js类(用div实现)
- js一个简单的方法实现数组中元素相加
- 分享一个基于长连接+长轮询+原生的JS及AJAX实现的多人在线即时交流聊天室
- 拷贝到剪切板——一个flash实现、兼容性不错的js插件ZeroClipboard
- 项目中的一个JQuery ajax实现案例
- 一个图片轮换显示的实现,使用DIV+JS,支持Firefox,IE,Safiri
- js实现输入一个数组,实现数组元素能够组成的最大整数
- js实现页面表格内容的复制粘贴填充,实现快速填写
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- js实现输入一个数组,实现数组元素能够组成的最大整数
- JS快速实现移动端拼图游戏
- 用json方式实现在 js 中建立一个map
- 【JS】:JS实现的一个网页输入然后输出加和的网页
- 用Js Dom实现通过用户输入行数和列数,生成一个表格
- Cage 是一个 Java 实现的验证码图片生成库,快速、小型和简单。
- JS实现利用两个队列表示一个栈的方法
- JS快速实现下拉及下拉搜索
- 实现一个简单的网页(缩略词表、文献来源链接、快速访问键列表)
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- 分享一个快速开发动态互动HTML5可视化图形效果的Javascript类库 - Envision.js