tab栏切换制作

先上图

要求1:默认状态,第一个选项卡被选中,展示第一个选项卡的内容

策略:第一个选项卡默认有被选中的样式,第一个选项卡对应的display: block,其他的dispaly设为none

要求2: 选项卡模块:被点击的变为红底白字,其他的变为白底红字

策略:排他思想,每次点击一个选项卡时,先把其他选项卡设为默认样式,然后自己设为被选中的样式。这里我们先在style里面设置一个新的class,把这个样式给被选中的选项卡。

要求3:每点击某个选中卡,出现对应的模块内容,点击第一个li,展示第一个div,点击第几个li,展示第几个div......,如何知道选中了第几个li呢?

策略:利用for循环,给每个li设置一个自定义属性,每点击这个li,得到该liindex的属性的值

代码部分:

 <body>
<div class="con">
<div class="tab_list">
<ul>
<!-- 第一个默认被选中 -->
<li class="tabChange">商品介绍</li>
<li>规格与包装</li>
<li>售后保障</li>
<li>商品评价</li>
</ul>
</div>
<div class="tab_containt">
<div style="display: block">商品介绍模块</div>
<div>规格与包装模块</div>
<div>售后保障模块</div>
<div>商品评价模块</div>
</div>
</div>

样式:

 <style>
* {
padding:;
margin:;
} .con {
width: 70%;
margin: 50px auto;
} .tab_list {
border-bottom: 1px solid red;
height: 60px;
} .tab_list ul {} .tab_list ul li {
list-style: none;
margin-right: 10px;
width: 23%;
height: 60px;
line-height: 60px;
color: red;
float: left;
text-align: center;
cursor: pointer;
} .tab_containt div {
display: none;
} .tab_list ul .tabChange {
color: aliceblue;
background-color: red;
}

js部分:

    <script>
// 切换选项卡时选项卡模块:被点击的变为红底白字,其他的变为白底红字,所以要用到排他思想
var lis = document.querySelector(".tab_list").querySelectorAll("li");
var items = document.querySelector(".tab_containt").querySelectorAll("div");
//console.log(items); //console.log(lis);
//给所有的li注册点击事件
for (var i = 0; i < lis.length; i++) {
// 点击第一个li,展示第一个div,点击第几个li,展示第几个div......this
// 那么我们如何知道点击了第几个li呢?思路:给li设置一个自定义属性,那么如何给5个li都设置带有编号的index呢,当然用for循环啦
lis[i].setAttribute("index", i);
lis[i].onclick = function() {
//console.log("dianij");
//排他
for (var i = 0; i < lis.length; i++) {
lis[i].className = "";
}
//成就自己
this.className = "tabChange";
//得到选项卡的index属性值
var index = this.getAttribute("index");
//console.log(index); //先排他思想,清除其他的内容显示第index个div的内容
for (var i = 0; i < items.length; i++) {
items[i].style.display = "none";
}
//使第index个盒子的内容显示
items[index].style.display = "block"; }
}
</script>

tab栏切换制作的更多相关文章

  1. jQuery带有定时器的tab栏切换

    现在网上很多类似选项卡的切换,我们成为tab栏切换,比如下图: 新浪的tab栏切换 淘宝的tab栏切换 其中,新浪的tab栏鼠标放上去,可以快速的来回切换,但是如果采取ajax异步传输,不停去加载服务 ...

  2. dataTable tab栏切换时错位解决办法

    做后台管理类网站肯定要写列表,首选dataTable,功能强大 最近在做一个tab栏切换时发现了一个很诡异的事情:表头错位了! 主要时因为当table被隐藏后,table的header宽度会计算错乱, ...

  3. tab栏切换

    最简单的tab栏切换 html部分 <ul class="tab"> <li class="item">待支付(1)</li> ...

  4. ES6面向对象实现tab栏切换效果

    面向对象实现tab栏切换效果

  5. JS实现 Tab栏切换案例

    要求:当鼠标点击上面相应的选项卡(tab),下面页面的内容也随之而改变. 结构分析: 全部的内容都放到一个大的盒子里面,盒子里面又可以分为上面和下面两个盒子. 上面的盒子放了 5个li,装着5个小的选 ...

  6. tab栏切换的特殊效果

    在实际的开发过程中,我们可能会遇到这种需求,如下图 左边是三个tab栏,右边是显示内容的div,当鼠标滑到坐标的tab上时,给它一个高亮显示,让它对应的内容在右边的div中显示出来,当鼠标移出的时候把 ...

  7. JavaScript实现Tab栏切换

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 京东网页上,可以看到下面这种tab栏的切换: 我们把模型抽象出来,实现一 ...

  8. [javascript]switchTab:仿腾讯首页Tab栏切换js插件

    腾讯首页的每个新闻栏目都是一个tab选项卡切换,属于延迟动作的:鼠标hover上去之后200毫秒才会切换,防止了因为浏览滑动导致的页面上选项卡的频繁切换.仿照这样的效果,自己写了一个js插件,实现了低 ...

  9. 如何解决tab栏切换只发一次请求的问题

    用的antd的tab栏组件,发现切换tab栏只在componentDidMount里面发了一次请求,后来发现是缓存问题,于是用activeKey再次进行了判断,代码如下:

随机推荐

  1. markdown插入表格语法

    markdown插入表格语法 举例 如表格标题为,姓名,班级,成绩 标题内的内容为,yang,a班,100 我们要在markdow文件中插入表格 如 姓名|班级|成绩 -|-|- yang|a班|10 ...

  2. [leetcode] 134. Gas Station (medium)

    原题 题意: 过一个循环的加油站,每个加油站可以加一定数量的油,走到下一个加油站需要消耗一定数量的油,判断能否走一圈. 思路: 一开始思路就是遍历一圈,最直接的思路. class Solution { ...

  3. docker实战(一)之Tomcat的安装

           docker号称分分钟就可以将环境构建完成,这话一点也不假,因为docker在使用软件时只需要从官方 仓库中拉取对应的镜像就行了.docker的使用前需要了解两个名词--镜像和容器.这两 ...

  4. Eclipse Spring框架配置

    1.从官网下载相应的jar包 (1)下载spring framework包,地址: https://repo.spring.io/webapp/#/artifacts/browse/tree/Gene ...

  5. google、谷歌浏览截图

    对于前端好用的浏览器---谷歌浏览器(没有插件)截取全屏很难受! 特备是前端,想截图下来,好好的量一下容器之前的尺寸(手动恼火) 对于程序员来说不一定需要插件,有很多大佬应该都知道, 小白记忆不好,每 ...

  6. Android的简述2

    android提供了三种菜单类型,分别为options menu,context menu,sub menu. options menu就是通过按home键来显示,context menu需要在vie ...

  7. 在工作中常用到的SQL

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 最近在公司做了几张报表,还记得刚开始要做报表的时候都 ...

  8. Java核心技术(卷一)读书笔记——第一章(概述)

    1.Java不提供多重继承,通过接口来实现.一个类只能继承一个父类,但是可以同时实现多个接口. 2.Java中的int类型的大小是固定的32位,以避免代码移植时候的不兼容问题.唯一的限制是int类型的 ...

  9. 【SVN】eclipse 安装 SVN 插件

    链接:eclipse中svn插件的安装 SVN 插件地址:http://subclipse.tigris.org/servlets/ProjectProcess;jsessionid=8EB28B11 ...

  10. 【iOS】duplicate symbols for architecture x86_64

    今天遇到了这个问题,错误如下: duplicate symbol _OBJC_IVAR_$_BCViewController.bank in: /Users/***/Library/Developer ...