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选项卡及应用面向对象方法实现的更多相关文章

  1. 精通javascript笔记(智能社)——数字时钟

    JS代码: <script type="text/javascript">    window.onload=function(){ //小于10的数字补零及数字转字符 ...

  2. [Effective JavaScript 笔记]第34条:在原型中存储方法

    js中完全有可能不借助原型进行编程.不用在其原型中定义任何的方法. 创建对象 构造函数法 所有属性和方法都在构造函数中定义 function User(name,pwd){ this.name=nam ...

  3. javascript笔记07:使用Object类为实例定义方法和属性

    function Person() {} Person.prototype = { nickName:"john", , showInfo:function() { return ...

  4. <精通JavaScript>---阅读笔记01

    下面是阅读精通JavaScript书做的相关笔记. JS中的函数重载 函数重载必须依赖两件事情:判断传入参数数量的能力和判断传入参数类型的能力,在js中每个函数都带有一个仅在这个函数范围内作用的变量, ...

  5. JavaScript学习--(智能社视频)

    JavaScript学习,这是智能社官网上的JS视频,讲解的挺不错的,就是没有视频的demo,在视频中附上自己编写的一些demo... 下载地址:http://pan.baidu.com/s/1cPz ...

  6. 可轮播滚动的Tab选项卡

    前段时间有试着搭建个后台主题ui框架,有用到可支持滚动的Tab选项卡,模仿着H+后台主题ui框架中的代码造轮子改造了下,可惜代码在公司,不能把代码外发出来(感觉这样被限制了很多,对于这样的公司没办法, ...

  7. js基础练习一之tab选项卡

    最近在学习前端,当然包括js,css,html什么的,在听课时做的一些小练习,记录下来: 实例一: --Tab选项卡-- <script type="text/javascript&q ...

  8. 原生js实现tab选项卡里内嵌图片滚动特效代码

    <!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...

  9. 下拉菜单效果和tab选项卡切换

    //下拉菜单效果和tab选项卡切换. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

随机推荐

  1. 北京Uber优步司机奖励政策(3月25日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. struts2官方 中文教程 系列十三:利用通配符选择方法

    介绍 在本教程中,我们将介绍如何在struts.xml中配置action节点以达到仅使用一个action节点将几个不同的url关联到特定action类的特定方法.这样做的目的是减少struts.xml ...

  3. babel配置

      首页 首页 首页 博客园 博客园 博客园 联系我 联系我 联系我 demo demo demo GitHub GitHub GitHub 管理 管理 管理 魔魔魔芋芋芋铃铃铃 [02]websto ...

  4. 【原创】java 获取十个工作日之前或之后的日期(算当天)-完美解决-费元星

    [原创]java 获取十个工作日之后的日期(算当天)-完美解决-费元星(仅考虑星期六星期天) /** * * 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期 * @param s ...

  5. jdk8 新特性stream().map()

    1.大写字符串列表 1.1 简单的Java示例将Strings列表转换为大写 TestJava8.java package com.mkyong.java8; import java.util.Arr ...

  6. SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域

    未适配前:Ball球超过屏幕的上下方   适配后:Ball球就在屏幕的可视范围内运动了 一.那么如何适配不同的iPhone.iPhoneX及iPad的屏幕尺寸呢? 我们开发一个App的时候, 通常希望 ...

  7. Spark性能超过Hadoop百倍

    Spark在偷换概念,Hadoop跑硬盘,Spark跑内存,地球人都知道,内存的速度可是远超硬盘一个量级,超过100倍又有什么奇怪的.如果要比,咱们都拿硬盘来跑跑看!

  8. vue实战(一):利用vue与ajax实现增删改查

    vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> ...

  9. IDEA使用maven构建时控制台中文乱码的解决办法

    使用maven clean install 项目时控制台中文乱码,解决办法如下: Setting->maven->runner VMoptions: -Dfile.encoding=UTF ...

  10. Python调用MySQL的一些用法小结

    目标:1个excel表内容导入到数据库中,例如:原始excel文件为 aaa.xls 首先:将aaa.xls 转换成aaa.txt ,注意当文件中含有中文字符时,可以通过notepad++打开,在“格 ...