精通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" " ...
随机推荐
- Java常考面试题
Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...
- 在Go语言里检测内存泄漏
我们先来设定一下数据库,建立一个MySQL数据库表,名为users,里面有login_name.nickname.uid.password.forbidden几个字段,其中uid与forbidden为 ...
- Get Error when restoring database in Sql Server 2008 R2
When I restored a database I got an error: "The backup set holds a backup of a database ot ...
- CTS测试笔记
电脑安装12.4乌班图系统 更新源 (1) 打开ubuntu software center (2) 电脑左上角选择edit→software sources…→点击download from,选择o ...
- C++学习006-条件运算符
这里我也理解的不咋的,大致意思应该就是根据运算符号 的优先级不同来解决的 条件运算符是其中一部分,而条件运算符具有右结合性,当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与理他最近的冒号配 ...
- fidder工具学习抓取Firefox包
fidder抓取Firefox的https请求 抓包之前需要设置fidder,我下面的截图是fidder4,打开fidder—>Tools—>Options如图: 选择https,勾选所有 ...
- Lambda表达式在Kotlin中怎样工作的:setOnClickListener的转换(KAD 18)
作者:Antonio Leiva 时间:Mar 28, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin-android/ 虽然,我在其它文章讲过一点 ...
- 第一篇 Charles的配置及相关使用
// Charles Proxy License // 适用于Charles任意版本的注册码,谁还会想要使用破解版呢. // Charles 4.2目前是最新版,可用. Registered Na ...
- laravel跨域问题
// 只有同源策略才允许发送cookies // header('Access-Control-Allow-Credentials:true'); 需要要index.php下开启 最近写登录图形验证码 ...
- GraphSAGE 代码解析(一) - unsupervised_train.py
原创文章-转载请注明出处哦.其他部分内容参见以下链接- GraphSAGE 代码解析(二) - layers.py GraphSAGE 代码解析(三) - aggregators.py GraphSA ...