js面向对象+一般方法的选项卡

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js面向对象+一般方法的选项卡</title>
<style type="text/css">
* { padding:0px; margin:0px;  }
#tab,#tab2{ width:450px;  margin:20px auto; font-size:12px; height:245px;}
.tab_inner { list-style:none;  border:1px solid #000; overflow:hidden; background:#000000; color:#FFFFFF; border-top-left-radius:5px; border-top-right-radius:5px; height:30px}
.tab_inner li{ width:80px; height:30px; text-align:center; line-height:30px; float:left; cursor:pointer; }
.tab_inner .hover{ background:#999; color:#000000;}
.content_{ border-bottom:1px #000000 solid; border-right:1px #000000 solid; border-left:1px #000000 solid; border-bottom-right-radius:5px; border-bottom-left-radius:5px; box-shadow:3px 3px 8px #666666;  width:448px; }
.content_ .summary{ display:none; clear:both }
.content_ .summary ul { padding-left: 30px; list-style-type:armenian line-height:25px;}
</style>
</head>

<body>
<div id="tab2">
    <ul class="tab_inner">
        <li class="hover">栏目一</li>
        <li>栏目二</li>
        <li>栏目三</li>
        <li>栏目四</li>
    </ul>
    <div class="content_">
        <div class="summary" style="display:block;">
          <ul>
            <li>网页特效原理分析</li>
            <li>响应用户操作</li>
            <li>提示框效果</li>
            <li>事件驱动</li>
            <li>元素属性操作</li>
            <li>动手编写第一个JS特效</li>
            <li>引入函数</li>
            <li>网页换肤效果</li>
            <li>展开/收缩播放列表效果</li>
          </ul>
        </div>
        <div class="summary">
            <ul>
                <li>改变网页背景颜色</li>
                <li>函数传参</li>
                <li>高重用性函数的编写</li>
                <li>126邮箱全选效果</li>
                <li>循环及遍历操作</li>
                <li>调试器的简单使用</li>
                <li>典型循环的构成</li>
                <li>for循环配合if判断</li>
                <li>className的使用</li>
                <li>innerHTML的使用</li>
                <li>戛纳印象效果</li>
                <li>数组</li>
                <li>字符串连接</li>
            </ul>
        </div>
        <div class="summary">
            <ul>
                <li>JavaScript组成:ECMAScript、DOM、BOM,JavaScript兼容性来源</li>
                <li>JavaScript出现的位置、优缺点</li>
                <li>变量、类型、typeof、数据类型转换、变量作用域</li>
                <li>闭包:什么是闭包、简单应用、闭包缺点</li>
                <li>运算符:算术、赋值、关系、逻辑、其他运算符</li>
                <li>程序流程控制:判断、循环、跳出</li>
                <li>命名规范:命名规范及必要性、匈牙利命名法</li>
                <li>函数详解:函数构成、调用、事件、传参数、可变参、返回值</li>
                <li>定时器的使用:setInterval、setTimeout</li>
                <li>定时器应用:站长站导航效果</li>
                <li>定时器应用:自动播放的选项卡</li>
                <li>定时器应用:数码时钟</li>
                <li>程序调试方法</li>
            </ul>
        </div>
        <div class="summary">
            <ul>
                <li>over...</li>
            </ul>
        </div>
    </div>
</div>
<div id="tab">
    <ul class="tab_inner">
        <li class="hover">栏目一</li>
        <li>栏目二</li>
        <li>栏目三</li>
        <li>栏目四</li>
    </ul>
    <div class="content_">
        <div class="summary" style="display:block;">
            <ul>
                <li>网页特效原理分析</li>
                <li>响应用户操作</li>
                <li>提示框效果</li>
                <li>事件驱动</li>
                <li>元素属性操作</li>
                <li>动手编写第一个JS特效</li>
                <li>引入函数</li>
                <li>网页换肤效果</li>
                <li>展开/收缩播放列表效果</li>
            </ul>
        </div>
        <div class="summary">
            <ul>
                <li>改变网页背景颜色</li>
                <li>函数传参</li>
                <li>高重用性函数的编写</li>
                <li>126邮箱全选效果</li>
                <li>循环及遍历操作</li>
                <li>调试器的简单使用</li>
                <li>典型循环的构成</li>
                <li>for循环配合if判断</li>
                <li>className的使用</li>
                <li>innerHTML的使用</li>
                <li>戛纳印象效果</li>
                <li>数组</li>
                <li>字符串连接</li>
            </ul>
        </div>
        <div class="summary">
            <ul>
                <li>JavaScript组成:ECMAScript、DOM、BOM,JavaScript兼容性来源</li>
                <li>JavaScript出现的位置、优缺点</li>
                <li>变量、类型、typeof、数据类型转换、变量作用域</li>
                <li>闭包:什么是闭包、简单应用、闭包缺点</li>
                <li>运算符:算术、赋值、关系、逻辑、其他运算符</li>
                <li>程序流程控制:判断、循环、跳出</li>
                <li>命名规范:命名规范及必要性、匈牙利命名法</li>
                <li>函数详解:函数构成、调用、事件、传参数、可变参、返回值</li>
                <li>定时器的使用:setInterval、setTimeout</li>
                <li>定时器应用:站长站导航效果</li>
                <li>定时器应用:自动播放的选项卡</li>
                <li>定时器应用:数码时钟</li>
                <li>程序调试方法</li>
            </ul>
        </div>
        <div class="summary">
            <ul>
                <li>over...</li>
            </ul>
        </div>
    </div>
</div>
<script type="text/javascript">
//面向对象版本选项卡
    function Tab(obj,type){
        this.tab=document.getElementById(obj);
        this.tab_inner=this.getByClass("tab_inner",obj)[0];
        this.tab_li=this.tab_inner.getElementsByTagName("li");
        this.content_=this.getByClass("content_",obj)[0];
        this.summary=this.getByClass("summary",this.content_);
        var that=this;
        for (var i=0;i<this.tab_li.length;i++){
            this.tab_li[i].index=i;
            Tab.prototype.addHandler(this.tab_li[i],type,function(){that.switch(this.index);});
        }
    }
    Tab.prototype.getByClass=function(className,parents){
        parents=parents||document;
        if(parents.getElementsByClassName){
            return parents.getElementsByClassName(className);
        }
        var nodes=document.getElementsByTagName("*");
        ret=[];
        for (var i=0;i<nodes.length;i++){
            if(hasClass(nodes[i],className)){
                ret.push(nodes[i]);
            }
        }
        return ret;
    }
    Tab.prototype.hasClass=function(node,className){
        var names=node.className.split(/\st/);
        for(var i=0;i<names.lemgth;i++){
            if(names[i]==className){
                return true;
            }
        }
        return false;
    }
    Tab.prototype.addHandler=function(obj,type,fn){
        if (obj.attachEvent)
        {
            obj[‘e‘+type+fn] = fn;
            obj[type+fn] = function(){obj[‘e‘+type+fn]( window.event );}
            obj.attachEvent( ‘on‘+type, obj[type+fn] );
        } else{
            obj.addEventListener( type, fn, false );
        }
    }
    Tab.prototype.switch=function(n){
        for (var i=0;i<this.tab_li.length;i++){
            this.tab_li[i].className="";
            this.summary[i].style.display="none";
        }
        this.tab_li[n].className="hover";
        this.summary[n].style.display="block";
    }
</script>
<script type="text/javascript">
    window.onload=function(){
        var tab=document.getElementById("tab")
        new Tab(tab,"mouseover");
        var tab2=document.getElementById("tab2")
        new Tab(tab2,"click");
    }
</script>
<!--script type="text/javascript">
//一般做法版本的选项卡
window.onload=function(){
    var tab=document.getElementById("tab");
    var tab_inner=getByClass("tab_inner",tab)[0];
    var tab_li=tab_inner.getElementsByTagName("li");
    var content_=getByClass("content_",tab)[0];
    var summary=getByClass("summary",content_);
    function getByClass(className,parents){   //用className获取元素
        parents=parents||document;
        if(parents.getElementsByClassName){
            return parents.getElementsByClassName(className);
        }
        var nodes=document.getElementsByTagName("*");
        ret=[];
        for (var i=0;i<nodes.length;i++){
            if(hasClass(nodes[i],className)){
                ret.push(nodes[i]);
            }
        }
        return ret;
    }
    function hasClass(node,className){
        var names=node.className.split(/\st/);
        for(var i=0;i<names.lemgth;i++){
            if(names[i]==className){
                return true;
            }
        }
        return false;
    }
    for (var i=0;i<tab_li.length;i++){   //效果实现
        tab_li[i].index=i;
        tab_li[i].onmouseover=function(){
            for (i=0;i<tab_li.length;i++){
                tab_li[i].className="";
                summary[i].style.display="none";
            }
            this.className="hover";
            summary[this.index].style.display="block";
        }
    }
}
</script-->
</body>
</html>

  

时间: 2024-10-27 11:55:32

js面向对象+一般方法的选项卡的相关文章

js面向对象编程:如何实现方法重载

js中如何实现方法重载?这涉及到三个问题 1同名函数的调用问题 2函数中特殊的参数arguments 3如何利用arguments实现方法重载 1同名函数的调用问题 都知道在js中如果存在多个名称相同的函数,则调用实际每次都只使用最后一个,js其实是没有重载的,也就是说,如果定义了多个同名的函数,单参数不一样,在调用时,js不管参数个数,只管前后顺序 例如: function test1(arg1) { alert("参数1:"+arg1); } function test1(arg1

JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链 JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法 1.Object类 在JS中,Object是所有类的基

关于 JS 面向对象继承属性和方法的小例子

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>关于 JS 面向对象继承属性和方法的小例子</h1> </body> </html> <script> //人的构造函

js面向对象初步探究(上) js面向对象的5种写方法

很长一段时间看网上大神的JS代码特别吃力,那种面向对象的写法方式让人看得云里来雾里去.于是就研究了一下JS面向对象,由于是初学,就将自己在网上找到的资料整理一下,作为记忆. js面向对象的5种写方法:(来自http://www.iteye.com/topic/434462) 首先 定义circle类,拥有成员变量r,常量PI和计算面积的成员函数area(): //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circl

js 面向对象的基本概念和基本使用方法

js 面向对象的基本概念和基本使用方法 -> js 是不是一个面向对象的语言? 不是:与传统面向对象的理论语言有矛盾.C#,Java. 是:js里面到处都是对象,数组,时间,正则- 和 DOM.也可以像传统面向对象的语言那样用 new 的方式创建对象 -> js是一个基于对象的多范式编程语言. 面向过程的方式 面向对象的方式 函数式 递归与链式 例: Jquery 链式编程 面向对象的概念 对象的定义:无序属性的集合,其属性可以包含基本值,对象或是函数 1. 面向:将脸朝向- -> 关注

1.1 js 面向对象的基本概念和基本使用方法

js 面向对象的基本概念和基本使用方法 -> js 是不是一个面向对象的语言? 说不是:因为与传统面向对象的理论语言有矛盾.C#,Java. 说是:因为js里面到处都是对象,数组,时间,正则- 和 DOM.也可以像传统面向对象的语言那样用 new 的方式创建对象 -> 其实js是一个基于对象的多范式编程语言.  面向过程的方式 面向对象的方式 函数式 递归与链式 例: Jquery 链式编程 面向对象的概念 对象的定义:无序属性的集合,其属性可以包含基本值,对象或是函数 1. 面向:将脸朝向-

原生js面向对象编程-选项卡(点击)

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>原生js面向对象选项卡(点击)</title> <style> #div1 div{ width:400px; height:300px; border:1px solid #ccc; overflow: hidden; display: non

原生js面向对象编程-选项卡(自动轮播)

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>原生js面向对象编程-选项卡(自动轮播)</title> <style> #div1 div{ width:400px; height:300px; border:1px solid #ccc; overflow: hidden; display

js面向对象的系列

在面向对象语言中如java,C#如何定义一个对象,通常是定义一个类,然后在类中定义属性,然后通过new 关键字来实例化这个类,我们知道面向对象有三个特点,继承.多态和封装.那么问题来了,在javaScript中如何定义一个类?在javaScript中如何定义类的属性?如何继承?带着这些问题开始我们的js面向对象之旅吧. 在js中如何定义类? js中是没有类的概念的,但是我们通常会用一个函数定义成一个类.funtion class1(){ //类的成员定义 } 这里class1既是一个函数也是一个