精通javascript笔记(智能社)——简易tab选项卡及应用面向对象方法实现
javascript代码(常规方式/面向过程):
<script type="text/javascript">
window.onload=function(){
var oDiv1=document.getElementById('div1'); //获取外部div
var aLis=oDiv1.getElementsByTagName('li'); //通过外部div获取li切换标签
var aDivs=oDiv1.getElementsByTagName('div'); //通过外部div获取tab标签对应的div内容 for(var i=0; i<aLis.length;i++){
aLis[i].index=i; //为li切换标签添加一个自定义index属性
aLis[i].onmouseover=function(){
for(var j=0; j<aLis.length;j++){ //初始化所有li及内部div样式
aLis[j].className=' ';
aDivs[j].style.display='none';
}
this.className='currentLi'; //为当前li添加currentLis样式
aDivs[this.index].style.display='block'; //让当前li所对应的div显示
}
}
}
</script>
javascript代码(面向对象方式):
window.onload=function(){
new tabSwitch('div1');
}
var aLis=null;
var aDivs=null;
function tabSwitch(id){
var _this=this;
var oDiv1=document.getElementById(id);
this.aLis=oDiv1.getElementsByTagName('li');
this.aDivs=oDiv1.getElementsByTagName('div');
for(var i=0; i<this.aLis.length;i++){
this.aLis[i].index=i;
this.aLis[i].onmouseover=function(){
_this.tabs(this); //通过_this指向div1而不是当前的aLis[i]对象,这里面的this指向的是aLis[i]对象
}
}
}
tabSwitch.prototype.tabs=function(oLi){
for(var j=0; j<this.aLis.length;j++){
this.aLis[j].className='';
this.aDivs[j].style.display='none';
}
oLi.className='currentLi';
this.aDivs[oLi.index].style.display='block';
}
简易HTML代码:
<div id="div1">
<ul>
<li class="currentLi">tabs01</li>
<li>tabs02</li>
<li>tabs03</li>
<li>tabs04</li>
<li>tabs05</li>
</ul>
<div style="display:block;">tabs01对应内容</div>
<div>tabs02对应内容tabs02对应内容</div>
<div>tabs03对应内容tabs03对应内容tabs03对应内容</div>
<div>tabs04对应内容tabs04对应内容tabs04对应内容tabs04对应内容</div>
<div>tabs05对应内容tabs05对应内容tabs05对应内容tabs05对应内容tabs05对应内容</div>
</div>
简易css代码:
*{ margin:0; padding:0;}
#div1{ margin-top:60px; margin-left:60px;}
#div1 ul{ list-style:none;}
#div1 ul li{ border-bottom:solid 1px #dcdcdc; float:left; margin-right:15px; display:block; height:30px; line-height:30px; text-align:center; padding:5px 10px; background-color:#f6f6f6; cursor:pointer;}
.currentLi{ background-color:#dcdcdc!important;}
#div1 div{ width:360px; background-color:#f6f6f6; height:100px; padding: 60px 20px;display:none;}
精通javascript笔记(智能社)——简易tab选项卡及应用面向对象方法实现的更多相关文章
- 精通javascript笔记(智能社)——数字时钟
JS代码: <script type="text/javascript"> window.onload=function(){ //小于10的数字补零及数字转字符 ...
- [Effective JavaScript 笔记]第34条:在原型中存储方法
js中完全有可能不借助原型进行编程.不用在其原型中定义任何的方法. 创建对象 构造函数法 所有属性和方法都在构造函数中定义 function User(name,pwd){ this.name=nam ...
- javascript笔记07:使用Object类为实例定义方法和属性
function Person() {} Person.prototype = { nickName:"john", , showInfo:function() { return ...
- <精通JavaScript>---阅读笔记01
下面是阅读精通JavaScript书做的相关笔记. JS中的函数重载 函数重载必须依赖两件事情:判断传入参数数量的能力和判断传入参数类型的能力,在js中每个函数都带有一个仅在这个函数范围内作用的变量, ...
- JavaScript学习--(智能社视频)
JavaScript学习,这是智能社官网上的JS视频,讲解的挺不错的,就是没有视频的demo,在视频中附上自己编写的一些demo... 下载地址:http://pan.baidu.com/s/1cPz ...
- 可轮播滚动的Tab选项卡
前段时间有试着搭建个后台主题ui框架,有用到可支持滚动的Tab选项卡,模仿着H+后台主题ui框架中的代码造轮子改造了下,可惜代码在公司,不能把代码外发出来(感觉这样被限制了很多,对于这样的公司没办法, ...
- js基础练习一之tab选项卡
最近在学习前端,当然包括js,css,html什么的,在听课时做的一些小练习,记录下来: 实例一: --Tab选项卡-- <script type="text/javascript&q ...
- 原生js实现tab选项卡里内嵌图片滚动特效代码
<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...
- 下拉菜单效果和tab选项卡切换
//下拉菜单效果和tab选项卡切换. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
随机推荐
- hoj第三场G-manhattanp ositioning system
---恢复内容开始--- 一.题意 在二维坐标系内,给定若干个点和目标点距离该点的曼哈顿距离,求是否存在唯一解使得目标点坐标为整数. 二.题解 重新思考题目模型,考虑曼哈顿距离一定时,几何含义为,以给 ...
- xshell怎样打印
Xshell提供用本地打印机打印终端窗口文本的功能.在Xshell打印时可以沿用终端窗口使用的字体及颜色.且在页面设置对话框可以设置打印纸的边距. 如何设置打印纸的大小和方向: 1.打开xshell ...
- Java RMI 入门指南
开通博客也有好些天了,一直没有时间静下心来写博文,今天我就把两年前整理的一篇关于JAVA RMI入门级文章贴出来,供有这方面需要的同学们参考学习. RMI 相关知识 RMI全称是Remote Meth ...
- 基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上)
基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上) 上周BOSS给分配任务让实现一下Mysql数据库的主从复制以及读写分离,然后花了一盏茶的功夫进行了调研,发现主从复制数据库进行一番 ...
- 云计算之路-阿里云上:基于Xen的IO模型进一步分析“黑色0.1秒”问题
在发现云服务器读取OCS缓存的“黑色0.1秒”是发生在socket读取数据时,而且是发生在读取开始的字节,甚至在socket写数据时(比如写入缓存key)也会出现超过50ms的情况,我们的好奇心被激发 ...
- Gated Recurrent Unit (GRU)
Gated Recurrent Unit (GRU) Outline Backgr ...
- react错误总结
react-native 错误总结 The development server returned response error code: 500 in react-native https://b ...
- springMVC前后台数据交互
假设项目需求是在springMVC框架下,后台要传送一个list到前台,那我们就要做以下几个步骤: 1 在web.xml文件中进行springMVC的配置: <?xml version=&quo ...
- Java作业09-异常
6. 为如下代码加上异常处理 byte[] content = null; FileInputStream fis = new FileInputStream("testfis.txt&qu ...
- lintcode-59-最接近的三数之和
59-最接近的三数之和 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和. 注意事项 只需要返回三元组之和,无需返回三元组本身 样例 例如 S = ...