JS笔记-选项卡的重用

以三个选项卡举例:

html部分

<style>
*{padding:0;margin:0;}
a{text-decoration: none;}
.clearfix:after{display: block;content:‘‘;clear: both;}
.clearfix{zoom:1;}
.fl{float: left;}
.tab{ width:400px; margin: 10px;}
.tab div{display:none; height:150px;text-align:center;color:#fff; font-size:50px;}
.tab .btn{border-top:2px solid #fff;}
.tab .btn.active { border-top:2px solid orange; }
.tab .txt.active { display:block; }
/*1*/
.one div {background: purple;}
/*2*/
.two{}
.two div {background: pink;height: 250px;}
/*3*/
.three div {background: orange;height: 300px;}
</style>


<!-- 1 -->
    <div class="j-tab tab one fl" data-sEvent="onclick">
        <input type="button" class="active j-btn btn" value="1-1"/>
        <input type="button" class="j-btn btn" value="1-2" />
        <input type="button" class="j-btn btn" value="1-3" />
        <input type="button" class="j-btn btn" value="1-4" />
        <input type="button" class="j-btn btn" value="1-5" />
        <div class="active j-txt txt ">1-1</div>
        <div class="j-txt txt ">1-2</div>
        <div class="j-txt txt ">1-3</div>
        <div class="j-txt txt ">1-4</div>
        <div class="j-txt txt ">1-5</div>
    </div>
    <!-- 2 -->
    <div class="j-tab tab two fl" data-sEvent="onmouseover">
        <a href="javascript:;"class="active j-btn btn">2-1</a>
        <a href="javascript:;"class="j-btn btn">2-2</a>
        <a href="javascript:;"class="j-btn btn">2-3</a>
        <div class="active j-txt txt ">2-1</div>
        <div class="j-txt txt ">2-2</div>
        <div class="j-txt txt ">2-3</div>
    </div>
    <!-- 3 -->
    <div class="j-tab tab three fl" data-sEvent="onclick">
        <input type="button" class="active j-btn btn" value="3-1" />
        <input type="button" class="j-btn btn" value="3-2" />
        <input type="button" class="j-btn btn" value="3-3" />
        <div class="active j-txt txt ">3-1</div>
        <div class="j-txt txt ">3-2</div>
        <div class="j-txt txt ">3-3</div>
    </div>
 

JS部分

<script>
window.onload=function (){
    tab(‘j-tab‘);
    function tab(sName)
    {
        var aParent=document.getElementsByClassName(sName);
        for (var i=0; i<aParent.length; i++)
        {
            var sEvent=aParent[i].getAttribute(‘data-sEvent‘);//将事件存在自定义data-sEvent属性中
            _tab(aParent[i],sEvent);
        }

        function _tab(oParent,sEvent)
        {
            var aBtn=oParent.getElementsByClassName(‘j-btn‘);
            var aTxt=oParent.getElementsByClassName(‘j-txt‘);
            for (var i=0; i<aBtn.length; i++)
            {
                (function (index){
                    aBtn[i][sEvent]=function (){
                        for (var i=0; i<aBtn.length; i++)
                        {
                            aBtn[i].className=‘j-btn btn‘;
                            aTxt[i].className=‘j-txt txt‘;
                        }

                        this.className=‘active j-btn btn‘;
                        aTxt[index].className=‘active j-txt txt‘;
                    };
                })(i);
            }
        }
    }
};
</script>
时间: 2024-08-06 22:14:39

JS笔记-选项卡的重用的相关文章

js实现选项卡

通过JavaScript实现如上选项卡切换的效果. 实现思路: 一.HTML页面布局 选项卡标题使用ul..li 选项卡内容使用div 二.CSS样式制作 整个选项卡的样式设置 选项卡标题的样式设置 选项卡内容的样式设置 一开始只显示一个选项卡内容,其它选项卡内容隐藏. 三.JS实现选项卡切换 获取选项卡标题和选项卡内容 选项卡内容多个,需要循环遍历来操作,得知哪个选项卡和哪个选项内容匹配 通过改变DOM的css类名称,当前点击的选项卡显示,其它隐藏 <!--代码一--><!DOCTYP

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

# JS笔记(1)

 JS理论: 1.JavaScript是一个客户端脚本 ------工作在客户端的浏览器完成:相对应的PHP.ASP.NET .JSP 是一个服务端脚本. 2.JS可以插入到HTML中的任意一个位置,不过HTML解析式从上往下解析的,所以放在上面可能会找不到控件. 3.JS的特点: 脚本编程语言 基于对象的语言 由事件驱动 跨平台.依赖于浏览器.与操作环境无关 4.JS的作用: 表单的验证(放在客户端验证比较好)----可以减轻服务端的压力,并且用户体验感更好 页面的动态效果 动态改变页面的内容

node.js笔记——模块的开发

模块是什么? 简单来说模块是用来将实现某个功能的代码进行封装以便在其他项目中通过简单引入的方式实现模块中封装的功能的一个东西!!(我更想管他叫小程序). 模块的引入 模块的引入使用reqiure()函数来实现例如引入http模块 var h = require("http"); 这里需要注意的是require()加载函数可以加载指定的js文件,当引入的不是某个js文件而是一段没有扩展名的字符时,默认node.js会加载当前根目录下的node_modules文件夹下面的文件夹里的文件 并

用html+css+js实现选项卡切换效果

文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安家东三环 北京首现零首付楼盘 53万购东5环50平 京楼盘直降5000 中信府 公园楼王现房 家居: 40平出租屋大改造 美少女的混搭小窝 经典清新简欧爱家 90平老房焕发新生 新中式的酷色温情 66平撞色活泼家居

node.js笔记——文件之间的引入

node.js的基础语法就是JavaScript的语法,所以对于懂得javascript的同学来说要容易一些,至于环境的配置也要相对简单很多,可以访问官方文档进行安装.这里分享一下我在学习中总结的一些东西,这是第一篇先来说说文件之间如何进行引入并互相使用变量及函数. 码缘»node.js笔记——文件之间的引入 http://www.ithome.ren/2017/05/31/node-js1.html

用js实现选项卡切换效果

这是要实现的效果图: 一.HTML页面布局 <!-- HTML页面布局 --><ul class="tab_menu"> <li class="selected">房产</li> <li>家居</li> <li>二手房</li></ul><div class="tab_box"> <div> 275万购昌平邻铁三居

JS 笔记 17年

1, 可把字符串作为 URI 组件进行编码   encodeURIComponent(encodeURIComponent(6))   此为编码两次 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号. escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换.encodeURIComponen

Node.js笔记(0001)---connect模块

首先来看这一部分代码 1 /** 2 * Created by bsn on 14-7-1. 3 */ 4 var connect = require('connect'); 5 6 var app = connect(); 7 function hello(req, res, next) { 8 console.log(req.url); 9 res.end('hello bsn'); 10 next(); 11 } 12 13 function helloAgain(req, res) {