JavaScript-实例(实现展开效果)
2015-11-07 16:47
681 查看
DOM编程步骤:
1. 定义界面通过html打开标签将数据进行封装
2. 定义一些静态的样式
通过CSS定义
3. 需要动态的完成和用户的交互
① 明确事件源
② 明确事件并将事件注册到事件源上
③ 通过javascript的函数对象事件进行处理
④ 在处理过程需要明确被处理的区域。
实例:展开闭合效果
方法介绍:getElementByTagName(Stringstr),把节点名称传进去,返回document中所有的该名称的节点对象数组。
overflow: css样式的属性,功能:当该区域超过了规定的范围时,可以显示visible,隐藏hidden,或者auto和scroll。
需求一:通过单击,实现一个展开的闭合效果。
测试数据:
<span style="font-family: Arial, Helvetica, sans-serif;"><div onclick="change()"></span><pre name="code" class="html"> 大家快发啦付款 </div>
实现功能:
注:doctool是封装的js文件,里面有一些常用的函数方法,这样可以提高开发效率。
<script type="text/javascript" src="doctool.js"></script> <script type="text/javascript"> function change() { var divNode =byTag("div")[0]; //方法一:鼠标事件,单击字体调用本方法:展开闭合效果 var b=true; if(b) { divNode.style.height="8px"; divNode.style.overflow="hidden"; b=false; } else { divNode.style.height="8px"; divNode.style.overflow="visible"; b=true; } }
方法一不是特别好,但也是一种处理方法,不如通过选择器来进行操作。
方法二:展开闭合效果
if(divNode.className=="close") { divNode.className ="open"; } else { divNode.className="close"; //这是一个类选择器 }
定义选择器:
<style type="text/css"> .open{ height:16px; overflow:visible; } .close{ height:16px; overflow:hidden; } dl{ height:16px; overflow:hidden; } </style>
展示的效果:
单击后:
需求二:通过单击上层项目,下层项目展示出来
测试数据:通过event对象是SRCElement属性
<dl> <dt onclick="list1()">上层项目上层项目</dt> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> </dl> <dl> <dt onclick="list1()">上层项目上层项目</dt> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> </dl> function list1(dtNode) { /*var dtNode = document.getElementsByTagName("dt")[0]; var dlNode = document.getElementsByTagName("dl")[0]; 这种方式也可以,但是获得节点dt很多的时候,这样就太麻烦了。 */ var dtNode =event.srcElement; //拿到了dt之后,我需要确认当前dt所做的操作 var dlNode =dtNode.parentNode; if(dlNode.className=="open") { dlNode.className ="close"; } else { dlNode.className="open"; } }
需求三:当单击一个项目时,其它项目都要关闭,只有一个项目打开。
测试数据:将事件源对象通过this传入。
<dl> <dt onclick="list(this)">上层项目上层项目</dt> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> </dl> <dl> <dt onclick="list(this)">上层项目上层项目</dt> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> <dd>下层项目下层项目</dd> </dl> function list(dtNode) { var dlNode =dtNode.parentNode; //得到dt节点对象的父节点dl var dlNodes=byTag("dl"); //获取所有的dl标签 for(var x=0;x<dlNodes.length;x++) { if(dlNodes[x]==dlNode) { if(dlNode.className=="open") { dlNode.className ="close"; } else { dlNode.className="open"; } } else dlNodes[x].className ="close"; } }
相关文章推荐
- HTML5小游戏~五指棋
- JAVAScript简单动画~移动方块~setInterval()~碰到边缘弹回
- 用HTML创建游戏中的元素用canvas~画方块~画圆:
- js正则表达式匹配斜杠 网址 url等
- 直接使用Id和使用document.getElementById()的比较
- JavaScript写的数字加法
- Array.prototype.slice.call()方法详解
- 用JavaScript判断横屏竖屏问题。JavaScript代码如下【转】
- Jstl标签库/Filter过滤器
- S2SH+ajax+json-------ajax提交form表达,上传图片
- Extjs定义类的配置项
- js限制文本框只能输入数字方法小结
- 一个简单json数据提交实例
- jsp自定义标签
- Prism:轻量级的 Javascript 代码高亮库
- 世界国家中英文名称以及地区区号json格式
- JavaScript练习(三)简单的轮播器原理代码
- 对象与json的转换
- .jsp与servlet之间页面跳转及参数传递实例
- struts2 ognl jstl el java代码在jsp页面混用