* index.html

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>js + css 实现标签内容切换功能</title>
<link type="text/css" rel="stylesheet" href="./css/style.css" />
</head> <body>
<ul id="list-title">
<li class="list-item list-item-checked">1</li>
<li class="list-item">2</li>
<li class="list-item">3</li>
</ul>
<div id="content-box">
<div class="contents contents-checked">content_1</div>
<div class="contents">content_2</div>
<div class="contents">content_3</div>
</div>
<script type="text/javascript" src="./js/switchTabs.js"></script>
<script>
switchTabs(".list-item", ".contents", "list-item-checked", "contents-checked");
</script>
</body> </html>

  

* css/style.css

#list-title {
height: 60px;
margin: 0;
padding: 0;
list-style-type: none;
} .list-item {
float: left;
width: 100px;
height: 50px;
margin: 2px;
line-height: 50px;
font-size: 28px;
text-align: center;
border: 1px solid #ccc;
cursor: pointer;
} .list-item-checked {
background-color: #70adff;
color: #ffffff;
} #content-box {
position: relative;
clear: both;
margin: 0 2px;
} .contents {
position: absolute;
left: 0;
top: 0;
width: 312px;
height: 300px;
font-size: 32px;
line-height: 300px;
text-align: center;
border: 1px solid #ccc;
z-index: 0;
opacity: 0;
visibility: hidden;
-webkit-transition: all .5s;
-moz-transition: all .5s;
-ms-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
} .contents-checked {
z-index: 1;
opacity: 1;
visibility: visible;
} #content-box > .contents:first-child {
background-color: #c8ff40;
} #content-box > .contents:nth-child(2) {
background-color: #41ff6f;
} #content-box > .contents:nth-child(3) {
background-color: #ff82a0;
}

  

* js/switchTabs.js

/*
* tab:用于触发事件的标签的selector;
* content:内容容器的类名;
* ts:标签为选中状态时的样式;
* cs:内容容器为选中状态时的样式;
* 检查元素的类名列表中是否有指定的类名,如果有则移除,如果没有则添加;
* */
function switchTabs(tab, content, ts, cs) {
var tabs = document.querySelectorAll(tab),
contents = document.querySelectorAll(content),
last = 0; // 上一次选中元素的index tabs.forEach(function (tab, i) {
(function (i) {
tab.onclick = function () {
tabs[last].classList.remove(ts);
contents[last].classList.remove(cs);
last = i; this.classList.add(ts);
contents[i].classList.add(cs);
}
})(i);
}); }

  

javascript 标签切换的更多相关文章

  1. 每天一个JavaScript实例-tab标签切换

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. 使用SuperSlide 实现标签切换

    小颖之前还写过一篇jquery实现标签切换的文章  jquery实现Tab选项卡菜单 今天小颖逛博客园时看到了用SuperSlide 实现标签切换的文章,所以小颖就自己试了下,试了后发现SuperSl ...

  3. JS特效之Tab标签切换

    在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了JS后,开始要写出一些简单的特效.今天我也分享一个简单tab标签切换的例子.先附上代码: HT ...

  4. Bootstrap——设置Tab标签切换

    最近一个小项目需要用Tab标签切换显示不同div内容,用到了Bootstrap里面的东西,但是在Bootstrap3教程里却没有找到对应的代码,这里记录一下,方便以后快速查阅学习. 代码如下: < ...

  5. CSS和JavaScript标签style属性对照表

    CSS和JavaScript标签style属性对照表一般情况是把"-"去掉,后面字母用大写. CSS语法 (不区分大小写) JavaScript语法 (区分大小写) border ...

  6. 标签切换JS代码

    //标签切换 var nav = $('.index-nav'); var content = $('.index-nav-content li'); function hoverNav ($eleA ...

  7. 实例:jQuery实现标签切换

    具体实现效果如图: 原理很简单,就是监听鼠标滑动和点击事件.在第一个标签切换的示例中,当鼠标滑过某个标签时,就把class转移到当前标签.这里用到的jQuery方法主要是each()确定当前是哪一个标 ...

  8. JS 实现 Tab标签切换功能

    Tab标签切换 效果图: HTML部分: <div class="wrap">     <ul id="tag">       < ...

  9. 利用JavaScript来切换样式表

    切换样式表 html页 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

随机推荐

  1. SwiftUI图片处理(缩放、拼图)

    采用SwiftUI Core Graphics技术,与C#的GDI+绘图类似,具体概念不多说,毕竟我也是新手,本文主要展示效果图及代码,本文示例代码需要请拉到文末自取. 1.图片缩放 完全填充,变形压 ...

  2. CMD下编译运行Java程序

    准备1:JDK下好了 准备2:环境变量配置好了 准备3:本次测试用的是JDK8,用JDK10的在Eclipse里面好像用不了 满足上面三个条件,那可以继续看下去了 Test_1:带包编译运行 代码: ...

  3. L298N使用资料

    L298N驱动连接arduino小车电机(代码和使用): https://www.cnblogs.com/fsong/p/12309911.htmlarduino UNO 连接L298N驱动两个电机转 ...

  4. Raspberry Pi 中安装Mono

    摘自:http://www.phodal.com/blog/user-csharp-develop-raspberry-pi-application/ Raspberry Pi C# Mono Lin ...

  5. DataTable 读取每一行的内容

    foreach (DataRow item in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { Co ...

  6. docker下gitlab(redis)安装配置使用(完整版)

    ps:如果是云主机,需添加安全组开放相应端口(关联相应实例),防火墙开放端口或直接关闭 https://www.jianshu.com/p/080a962c35b6 将其中external_url换为 ...

  7. 线程间协作的两种方式:wait、notify、notifyAll和Condition

    转载自海子: 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者 ...

  8. 整理之Java容器

    主要参考:JAVA常见容器 Set,List,Map,Vector,ArrayList的区别 Java所有容器见下图: 数组 int[] t = new int[10]; //声明并创建长度为10的数 ...

  9. 【Python机器学习实战】决策树与集成学习(四)——集成学习(2)GBDT

    本打算将GBDT和XGBoost放在一起,但由于涉及内容较多,且两个都是比较重要的算法,这里主要先看GBDT算法,XGBoost是GBDT算法的优化和变种,等熟悉GBDT后再去理解XGBoost就会容 ...

  10. Mac shell 调节音量

    $ osascript -e 'get volume settings' $ osascript -e 'output volume of (get volume settings)' $ osasc ...