javascript滑动门的实现方法和案例
来源:互联网 发布:ov7670摄像头数据手册 编辑:程序博客网 时间:2024/06/03 14:08
首先我们知道js滑动门的三种实现思路:
-自定义方法
-闭包
-自定义属性
那么写个列子分析一下各自的好坏。demo地址:http://codepen.io/tianzi77/pen/jPMPeB
html结构:
<div id="content"> <div id="tabs"> <ul> <li class="active">天子</li> <li>滑动门</li> <li>javascript</li> </ul> <span id="state">-</span> </div> <div id="list"> <ul class="active"> <li>IE6 PNG 解决方案合集</li> <li>firefox下输入框innerHtml问题</li> <li>精品菜单导航,多年精心收集整理上上品菜单</li> <li>60个WEB实用效果集合</li> <li>CSS3动态按钮导航集锦</li> <li>HTML 5的革新:结构之美</li> <li>JavaScript高级程序设计(第2版)</li> <li>w3cfuns-我爱你!~~~</li> <li>高性能网站建设指南</li> <li>罕见的皮具拉链效果博客PSD</li> <li>【基础五】块状元素和内联元素</li> <li>“阳癫疯”的纯css下拉导航原理</li> <li>请问这个排序功能如何实现?</li> <li>分享10个便利的HTML5/CSS3框架</li> <li>白璐ersonal 申请【热血活动】版块版主</li> <li>web前端标准在各浏览器中的差异</li> </ul> <ul> <li>腾讯面试题</li> <li>近期面试感受</li> <li>腾讯实习生web前端JS开发工程师面试经历</li> <li>阿里巴巴web前端开发面试题</li> <li>网易页面重构面试题</li> <li>网易web前端开发师面试问答的经历</li> <li>2011腾讯前端面试稿</li> <li>Alibaba web前端开发工程师面试奇遇记</li> <li>腾讯实习生网页重构组招聘公开试题(含答案</li> <li>求职记——记录成为面霸的全过程</li> <li>淘宝Web前端开发面试经历</li> <li>百度前端面试题对话记录(内推面试)</li> <li>2015年最新百度前端开发面试经历(一面和二面</li> <li>去TX的事基本黄了,题我发出来了</li> <li>俺们公司的面试题</li> </ul> <ul> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门</li> <li>滑动门滑动门滑动门!</li> </ul> </div> </div>
然后写css样式:
*{ margin:0; padding:0; } body{ font-size:12px; } #content{ margin:0 auto; width:600px; border:1px #000 solid; } #tabs{ height:30px; background:#000; overflow:hidden; position:relative; } #tabs #state{ display:block; top:0; right:0; width:30px; height:30px; font-size:24px; font-weight:700; text-align:center; color:#fff; cursor:pointer; position:absolute; } #tabs li{ display:inline; padding:0 8px; line-height:30px; color:#fff; list-style:none; cursor:pointer; float:left; } #tabs .active{ color:#000; background:#fff; } #list{ padding:10px 0; } #list ul{ margin:0 25px; display:none; } #list ul li{ height:25px; line-height:25px; } #list .active{ display:block; }
js部分:
首先加减号伸缩按钮比较简单:
state.onclick = function() { var text = this.innerHTML; if(text == "-") { this.innerHTML = "+"; list.style.display = "none"; } else { this.innerHTML = "-"; list.style.display = "block"; } }
然后就是获取id或者class,由于不用jquery,所以直接定义一个$方法获取。简化代码量。
var $ = function(ids) { return document.getElementById(ids); } var tabs = $("tabs").getElementsByTagName("li"); var state = $("state"); var list = $("list"); var ul = list.getElementsByTagName("ul");
ul的切换和li的滑动效果有三种方法,一一道来:
//方法一可以不使用闭包 思路比较简单 自定义属性 代码少,经常使用。
for(var i = 0; i < tabs.length; i++) { tabs[i].index = i; tabs[i].onmouseover = function() { for(var i = 0; i < tabs.length; i++) { tabs[i].className = ul[i].className = ""; } this.className = ul[this.index].className = "active"; ` }
方法二:
function events(index) { tabs[index].onmouseover = function() { for(var i = 0; i < tabs.length; i++) { tabs[i].className = ul[i].className = ""; } this.className = ul[index].className = "active"; } }
//方法三 采用闭包立即执行索引
( function(index) { tabs[index].onmouseover = function() { for(var i = 0; i < tabs.length; i++) { tabs[i].className = ul[i].className = ""; } this.className = ul[index].className = "active"; } } )(i);
随便掌握一种便可玩转滑动门。
0 0
- javascript滑动门的实现方法和案例
- javascript的getElementById()方法案例
- JavaScript实现滑动门效果
- JavaScript实现滑动门特效
- 【web】页面缩放和滑动功能实现的方法总结
- RecyclerView实现滑动和删除事件的监听方法
- javascript:(滑动选项卡、进度条、广告收缩效果、滑动的下拉菜单)案例
- JavaScript回到顶部的滑动效果实现
- Javascript实现的左右滑动菜单
- JavaScript实现图片的滑动切换效果
- Javascript实现的左右滑动菜单
- ViewPager 实现页面左右滑动的简单案例1
- 【Android UI】案例03滑动切换效果的实现(ViewPager)
- javascript的getElementsByTagName()方法及案例
- javaScript 案例之简单菜单的实现
- javascript实现tab滑动门,简单原理
- JavaScript实现滑动折叠
- javascript 实现Tab滑动
- android Touch事件流程
- Wi-Fi、ZigBee、BLE无线三国杀
- 汇编求数组最小值
- X-manager下使用sqlplus退格输出"^H"解决
- Java写的播放音乐文件
- javascript滑动门的实现方法和案例
- 黑马程序员——IOS基础(Foundation框架一)
- Hibernate下的hibenate.hbm2ddl.auto属性详解
- ubuntu12.04下安装第三方QQ
- 嵌入式linux烧写内核,文件系统的2种方式
- uboot中对U盘文件进行读写
- 黑马程序员——c语言基础:宏和条件编译
- search insert position
- C#日积月累之类型转换