js--对tab的简单封装

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script>
        window.onload = function(){
            function tab(obj){
                var target = document.getElementById(obj);
                var spans = target.getElementsByTagName("span");
                var lis = target.getElementsByTagName("li");

                for(var i=0; i < spans.length; i++){
                    spans[i].index = i;
                    spans[i].onmouseover = function(){
                        for(var j=0; j<spans.length;j++){
                            spans[j].className="";
                            lis[j].className = "";
                        }
                        this.className="current";
                        lis[this.index].className ="show";
                    }
                }
            }

            tab("one");
            tab("tow");
            tab("third")

        }
    </script>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul{
            list-style: none;
        }
        .box{
            width: 340px;
            height: 300px;
            border: 1px solid #ccc;
            margin: 100px auto;
        }
        .mt span{
            display: inline-block;
            width: 80px;
            height: 30px;
            background-color: pink;
            text-align: center;
            line-height: 30px;
            cursor: pointer;
        }
        .mb li{
            width: 100%;
            height: 270px;
            background-color: purple;
            display: none;
        }
        .mt span.current{
            background-color: purple;
        }
        .mb li.show{
            display: block;
        }
    </style>
</head>
<body>
<div class="box" id="one">
    <div class="mt">
        <span class="current">新闻</span>
        <span>体育</span>
        <span>娱乐</span>
        <span>八卦</span>
    </div>
    <div class="mb">
        <ul>
            <li class="show">新闻</li>
            <li>体育</li>
            <li>娱乐</li>
            <li>八卦</li>
        </ul>
    </div>
</div>
<div class="box" id="tow">
    <div class="mt">
        <span class="current">新闻</span>
        <span>体育</span>
        <span>娱乐</span>
        <span>八卦</span>
    </div>
    <div class="mb">
        <ul>
            <li class="show">新闻</li>
            <li>体育</li>
            <li>娱乐</li>
            <li>八卦</li>
        </ul>
    </div>
</div>
<div class="box" id="third">
    <div class="mt">
        <span class="current">新闻</span>
        <span>体育</span>
        <span>娱乐</span>
        <span>八卦</span>
    </div>
    <div class="mb">
        <ul>
            <li class="show">新闻</li>
            <li>体育</li>
            <li>娱乐</li>
            <li>八卦</li>
        </ul>
    </div>
</div>
</body>
</html>

  通过传递盒子的id,对不同盒子的tab进行特效操作。鼠标通过不同的span标签时,显示不同的内容。

时间: 2024-08-08 09:39:24

js--对tab的简单封装的相关文章

JS组件系列——分享自己封装的Bootstrap树形组件:jqTree

前言:之前的一篇介绍了下如何封装自己的组件,这篇再次来体验下自己封装组件的乐趣.看过博主博客的园友应该记得之前分享过一篇树形菜单的使用JS组件系列——Bootstrap 树控件使用经验分享,这篇里面第一个Jquery Tree,只是用简单样式和js去实现了效果,没有给出一个系统的封装,这篇博主就来试试在此样式的基础上封装一个稍微完整点的树形组件. 一.组件效果预览 其实效果和之前的那个差不多,博主只是在之前的基础上加了一个选中的背景色. 全部收起 展开 全部展开 二.代码示例 其实效果很简单,重

nodeweibo对新浪微博接口的简单封装

一.前言 就在去年12月份,有个想法是使用node爬取微博的数据,于是简单的封装了一个nodeweibo这个库.时隔一年,没有怎么维护,中途也就将函数形式改成了配置文件.以前做的一些其他的项目也下线了,为了是更加专注前端 & node.js.偶尔看到下载量一天超过60多,持续不断的有人在用这个库,但是看下载量很少也就没有更新.但是昨天,有人pull request这个分支了,提出一些中肯的建议和有用的代码.于是就认真回顾了下nodeweibo,发布了v2.0.3这个版本. 二.什么是nodewe

Android简单封装类似JQuery异步请求

在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作,会有溢出的问题,(当然一般情况不会有那么多线程同时工作的)所以写了这个代码,还望高手指正! [Java]代码 01 package com.xbl.task; 02 03 import java.io.BufferedReader; 04 import java.io.InputStream; 0

Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用

一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见.下面就介绍下如何用JS对Tab进行控制. 1. 控制可见 function setTabVisableByName(tabName, flag) { var control = Xrm.Page.ui.tabs.get(tabName); control.setVisible(flag); } 这里flag是true或false 2. 控制可用 看了上面的可见代码,是不是以为可用也这么简单呢?其实我们把上面的setV

Node.js(express) + MongoDB(mongoose) 简单开发(二)

前面说过,做一个真正意义上的登录注册,接下来就让我们一步一步实现吧~ 首先需要安装mongodb,网上有很多安装教程,这里就不再赘述. 安装完成后开始与本地数据库连接,可以参考这里:MongoDB介绍及下载与安装 最后可以安装一个可视化的操作数据库的软件:MongoVUE,配置也很简单: 最后在项目级目录下安装mongoose,安装过程自行百度~ 安装成功后可在node_modules下看见mongoose文件夹 接下来我们测试数据库是否连同: 新建一个models的文件夹,在这里我们对表进行操

axios简单封装

写在最前面 新手前端刚刚接触vue,感觉真的好用.项目中需要使用axios,然后学习了一下.借鉴网上一些大佬的经验,现在分享一下axios的简单封装,如果有什么错误的地方,请大家指出. axios安装 npm install axios --save 最最简单的使用 首先在src目录下创建axios文件夹,然后创建index.js和fetch.js两个文件. fetch.js文件代码如下: import axios from 'axios' //定义fetch函数,config为配置 expor

JDBC简单封装

/** * JDBC简单封装 * 需要借助FastJsonUtil可以参考上一篇 * @author huangxincheng * */ public class BaseDao { private static String URL; private static String USERNAME; private static String PASSWORD; private static String DRIVER; private  Connection connection; priv

JS基础(超级简单)

1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)        string 3)        boolean 4)        null 5)        undefined 1.1.2   复杂类型 object:date,array,function 1.2 变量 var 变量名=值 变量的作用域:1.全局:以页面为单位.2局部:以函数为单位.

对系统网络请求进行简单封装

AGConnectionNet对系统网络请求进行简单封装,可便利的进行网络请求,并将数据解析与网络请求封装在同一方法下,使用更加便利(JSON 解析采用自身解析方法, XML 解析采用第三方 ReadXML 进行解析). 方法具体参数说明 初始化方法:/*** 类方法,实例化当前数据请求对象 (单例)** @return 当前请求对象*/+ (instancetype)shareRequestData; 仅进行请求数据方法/*** 请求数据 (session 请求)** @param URLSt

原生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=&