面向对象的tab选项卡实现

利用最基础的面向对象的思想,实现tab选项卡效果:

效果截图:

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>面向对象的tab选项卡实现</title>
    <link rel="stylesheet" href="tab.css">
</head>
<body>
    <div class="box" id="box">
        <ul class="conList">
            <li class="conli on">第一张选项卡</li>
            <li class="conli">第二张选项卡</li>
            <li class="conli">第三张选项卡</li>
        </ul>
        <nav class="btnList">
            <a class="btn on" href="javascript:;">第一个控制按钮</a>
            <a class="btn" href="javascript:;">第二个控制按钮</a>
            <a class="btn" href="javascript:;">第三个控制按钮</a>
        </nav>
    </div>
    <script src="tab.js"></script>
</body>
</html>

CSS代码(tab.css):

*{ margin: 0; padding: 0 }
/*in为选项卡普通状态,默认不显示*/
.conList .conli{
    display: none;
    width: 600px;
    height: 100px;
    background: orange;
    font-size: 50px;
    line-height: 100px;
    text-align: center;
}
.conList .on{
    display: block;
}
/*控制按钮区域*/
.btnList{
    margin-top: 6px;
}
/*btn为按钮普通状态,默认文字颜色为黑色*/
.btnList .btn{
    display: inline-block;
    color: black;
    background-color: orange;
    padding: 6px;
    text-decoration:none;
}
.btnList .on{
    background-color: #7a4201;
    color: #fff;
}
/*btn_active为按钮选中状态,选中后文字颜色为白色*/
.btn_active{
    color: white;
}

JS代码(tab.js):

// 定义构造函数
var TabSwitch = function(parent){
    // 获取内容区域
    this.ulList = parent.getElementsByTagName(‘ul‘)[0];
    this.liList = this.ulList.getElementsByTagName(‘li‘);
    //获取控制按钮
    this.btnList = parent.getElementsByTagName(‘nav‘)[0];
    this.btns = this.btnList.getElementsByTagName(‘a‘);
    // 添加事件
    this.totalNum = this.btns.length;    this.curIndex = 0;    var _this = this;
  for(var i = 0; i<this.totalNum; i++){     //方法一
        // 设置索引
        this.btns[i].index = i;
        // 每个按钮点击事件
        this.btns[i].onclick = function(){
            _this.curIndex = this.index;
            _this.toSwitch();
        }     //方法二:利用闭包        // this.btns[i].onclick = (function(i){        //     return function(){                        //         _this.curIndex = i;        //         _this.toSwitch();        //     }        // })(i)
    }
}
TabSwitch.prototype.toSwitch = function(){
    //把所有的控制区域on样式清空
    for(var i = 0; i<this.totalNum; i++){
        this.btns[i].className = ‘btn‘;
        this.liList[i].className = ‘conli‘;
    }
    // 为当前点击按钮设置样式
    this.btns[this.curIndex].className += ‘ on‘;
    // 为当前按钮对应选项设置样式
    this.liList[this.curIndex].className += ‘ on‘;
}
// 实例
var oBox = document.getElementById(‘box‘);
var tab01 = new TabSwitch(oBox);

参考:http://www.cnblogs.com/xiaohuochai/p/4803964.html

时间: 2024-10-29 19:07:29

面向对象的tab选项卡实现的相关文章

面向对象的tab选项卡

面向对象 this的问题  用定时器 用了事件的之后 首先我们先布局一下 按照常规的js来做一下选项卡, <style type="text/css"> ul, li{ list-style-type: none; margin: 0; padding: 0} #div1{ width: 300px; height: 30px; background: #ccc} #div1 li{width: 100px; float: left;; text-align: center

【锋利的JQuery-学习笔记】Tab选项卡的实现

效果图: 关键点: 1.标签和标签内容都是用<ul><li>实现的,主要是通过Css样式设计成选项卡的模样. 2.用js代码实现点击标签时,标签内容的切换(做法是<div id="jnBrandList">横向滚动). html: <div id="jnBrand"> <div id="jnBrandTab"> <h2 title="品牌活动">品牌活动&

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

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title>原生js实现tab选项卡里内嵌图片滚动特效代码</title><meta name="keywords" content="原生js实现tab选项卡里内嵌图片滚动特效代码" /><meta name=&

原生JS画的tab选项卡

记录一下原生js写的tab选项卡 鼠标滑入可以切换图片 离开之后自动切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-

【Little Demo】左右按钮tab选项卡双切换

通过前一篇文章 从简单的Tab标签到Tab图片切换 的说明,相关效果也就可以实现了. 1.左右按钮tab选项卡双切换 很明显,左右两个按钮是 absolute 布局,另外就是内容部分和Tab标签部分. 1) 先实现Tab内容和标签部分的显示: HTML代码: <div class="tab-Infomations"> <div class="arrows"></div> <div class="tab-conten

可以自动切换的tab选项卡实现过程详解

可以自动切换的tab选项卡实现过程详解:关于选项卡大家一定不会陌生,应用非常的频繁,通常选项卡都是需要点击或者划过才能够实现切换.本章节分享一个能够实现自动切换的选项卡功能,并给出它的具体实现过程.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.so

移动web:tab选项卡

平常做移动端会用到tab选项卡,这和PC端有些区别,移动端是触摸滑动切换,PC端是点击.移入切换. 这里滑动切换就是一个移动端事件的应用,这里主要用到的触摸事件:touchstart.touchmove.touchend. 和做其他的效果一样,先有html结构,css样式修饰,再写JS代码. html: <div class="mtabs" id="tabs"> <ul class="mhead"> <li>t

语音导航的tab选项卡效果

前端开发whqet,csdn,王海庆,whqet,前端开发专家 ladies and 乡亲们,程序员同志们,周末仍然坚守工作岗位,或者学习不辍的童鞋们,福音来了. 语音识别高不高端.难不难? 今天给大家推荐一个简单易用的js实现的语音识别框架annyang,然后一个案例示范使用. 在线案例,下载收藏. annyang是一个能够实现语音识别的js类库,小巧易用(仅仅2k),兼容中文.接下来我们看看怎么使用. 首先导入该annyang库,可以使用CDN的方式,也可以下载来使用. <!--下载到本地使

各种效果的tab选项卡

;(function($){ $.fn.tabso=function( options ){ var opts=$.extend({},$.fn.tabso.defaults,options ); return this.each(function(i){ var _this=$(this); var $menus=_this.children( opts.menuChildSel ); var $container=$( opts.cntSelect ).eq(i); if( !$contai