javascript 标签切换
2024-09-06 14:55:34
* 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移动设备Web开发中对touch事件的封装实例
- database link远程链接数据库
- 当SVN服务器端IP地址发生变化时,客户端重新定位
- phpmyadmin任意文件包含漏洞分析(含演示)
- poj.2419.Forests (枚举 + set用法)
- Scrum Meeting---Seven(2015-11-2)
- python-抓取图片
- Qualcomm Web Site For Android Development
- 一起来开发Android的天气软件(四)——使用Gson解析数据
- 鸟书shell 学习笔记(一) shell专注于概念和命令
- HttpServletRequest和ServletRequest的区别
- Struts2 Handle 404 error page and wrong action
- RAC和单节点数据库的区别有哪些?RAC最有用的功能是什么?
- UNIX环境高级编程——信号基本概述和signal函数
- istio收集Metrics和日志信息
- MySQL 笔记整理(1) --基础架构,一条SQL查询语句如何执行
- sql语句的存储过程中的条件处理
- Spring Boot中使用EhCache实现缓存支持
- python如何与以太坊交互并将区块链信息写入SQLite
- Asp.Net Core实现文件上传
热门文章
- 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据
- Linux下MySQL主从复制(Binlog)的部署过程
- noip36
- HCNP Routing&;Switching之OSPF网络类型
- 栈编程和函数控制流: 从 continuation 与 CPS 讲到 call/cc 与协程
- Android:绘制字符
- 工具库用久了,你还会原生操作 Cookie 吗?
- Linux centos 安装 maven 3.5.4
- eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
- Mac automator bash 自动操作 右键菜单unrar解压 拷贝文件路径到剪贴板 快速删除(rm -rf) 快捷键设置