js原生tab标签页(不使用jquery)

jQuery实现tabs(标签页/选项卡)Demo 1. 需要下载的文件 jquery.min.js 2. 效果截图   通过滑动鼠标可以切换不同的tabs,并且显示不同的内容。下面是实现的效果图 3. 代码   html 选项卡 $(function () { $("#mytabs").tabs(); }); 阅读详情

项目需求是使用原生js写出如下样式:

先说下实现的思路,

1、关于tab按钮切换,先默认给三个tab按钮一个共有的样式,然后再单独拿一个class写一个当前选中tab的样式。切换的时候,当前的tab按钮添加这个class,同时去掉另外两个tab按钮的class(不管有没有)

2、关于tab内容的切换,一一对应,设置当前tab页的内容为display:block,其他的两个的内容设置为display:none

代码如下

html:

<div class="sellcount_tab">
    <div id="tab">
        <div id="manage" class="public">保理管理费</div>
        <div id="supervise">保理监管费</div>
        <div id="renewal">展期</div>
    </div>
</div>
<div class="content">
    <div id="manage_detail">
        <table id="manage_table">
            <thead>
                <tr>
                    <th style="width: 103px;">月份</th>
                    <th style="width: 156px;">管理费总金额</th>
                    <th style="width: 156px;">广三金额</th>
                    <th style="width: 176px;">进三金额</th>
                    <th style="width: 170px;">状态</th>
                </tr>
            </thead>
            <tr>
                <td>2020-06</td>
                <td>计算中</td>
                <td>79,000.31</td>
                <td>计算中</td>
                <td>
                    <div style="display:inline-block;">
                        <div class="pay">
                            <span class="dot"></span>
                            <span style="margin-left: 5px;">已支付</span>
                        </div>
                    </div>
                </td>
            </tr>
        </table>
    </div>
    <div id="supervise_detail" class="develop">
        <img src="./imgs/插画1@2x.png" alt="">
        <div>此功能正在火速开发中,敬请期待哦~</div>
    </div>
    <div id="renewal_detail" class="develop">
        <img src="./imgs/插画1@2x.png" alt="">
        <div>此功能正在火速开发中,敬请期待哦~</div>
    </div>
</div>

js:

var tab = document.getElementById("tab"); //tab容器(用于事件委托)
var manage = document.getElementById("manage"); //保理管理费
var supervise = document.getElementById("supervise"); //保理监管费
var renewal = document.getElementById("renewal"); //展期
var manage_detail = document.getElementById("manage_detail"); //保理管理费-详情
var supervise_detail = document.getElementById("supervise_detail"); //保理监管费-详情
var renewal_detail = document.getElementById("renewal_detail"); //展期-详情
tab.onclick = function (e) {
    var e = e || window.event;
    var target = e.target || e.srcElement;
    if (target.id == "manage") {
        manage.classList.add("public");
        supervise.classList.remove("public");
        renewal.classList.remove("public");
        manage_detail.style.display = "inline";
        supervise_detail.style.display = "none";
        renewal_detail.style.display = "none";
    }
    if (target.id == "supervise") {
        supervise.classList.add("public");
        manage.classList.remove("public");
        renewal.classList.remove("public");
        supervise_detail.style.display = "block";
        manage_detail.style.display = "none";
        renewal_detail.style.display = "none";
    }
    if (target.id == "renewal") {
        renewal.classList.add("public");
        manage.classList.remove("public");
        supervise.classList.remove("public");
        renewal_detail.style.display = "block";
        manage_detail.style.display = "none";
        supervise_detail.style.display = "none";
    }
};

css:

/* 表格样式 */

table {
    border-collapse: collapse;
    margin: 0 auto;
    text-align: center;
    font-size: 12px;
}

table td,
table th {
    border: 1px solid #e8e8e8;
    color: #666;
    height: 30px;
    margin: 0 auto;
}

table thead tr th {
    background-color: #f5f5f5;
    width: 100px;
}


.sellcount_tab {
    display: flex;
    margin: 10px 0 0 24px;
}

.content {
    height: 200px;
    margin-top: 60px;
}

.content .develop {
    text-align: center;
    display: none;
    color: #BCC3D0;
}

.content .pay {
    display: flex;
    justify-content: center;
    align-items: center;
}

.content .dot {
    width: 4px;
    height: 4px;
    border-radius: 10px;
    display: inline-block;
}

/* tab页 */

#tab {
    display: flex;
    border: 2px solid #efefef;
    border-radius: 4px;
}

#manage,
#supervise,
#renewal {
    width: 80px;
    height: 26px;
    line-height: 26px;
    text-align: center;
    font-size: 12px;
    padding: 1px 3px;
    background: #efefef;
    color: #989898;
    cursor: pointer;
}

#manage:hover,
#supervise:hover,
#renewal:hover {
    color: #666666;
}



#tab .public {
    font-weight: bold;
    color: #666666;
    background: white;
    border-radius: 4px;
    border: none;
    box-shadow: 0 0 0 2px #ededed;
}

 

期间遇到的一个问题就是border-radius背景色超出圆角,如下图:

而我想要的效果是

解决这个问题的关键是使用

box-shadow: 0 0 0 2px #ededed;

然后设置border为none

核心代码如图:

 

一个比较美观的圆角Tab选项卡切换效果 一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html 立即下载

相关推荐

VN1630A硬件配置指南:手把手教你用CanApe搭建XCP标定工程(附ELF文件配置技巧)

本文详细介绍了如何使用VN1630A硬件和CanApe软件搭建XCP标定工程,包括硬件配置、CanApe工程创建、ELF文件处理及XCP协议层配置等关键步骤。特别针对实际项目中常见的错误和细节问题提供解决方案,帮助工程师高效完成ECU参数标定工作。

git9versioner的博客 1157

tab栏的切换

tab栏切换的思路 1、tab栏切换要有上下(左右)两个大的模块 2、上面的模块内有几个小模块 3、下面的模块要有几个模块与上面的模块一一对应、相匹配 4、点击上面的小模块,下面相应的模块显示,其余的隐藏 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &...

zh_hunan的博客 2285

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7885

使用js实现tab页签切换效果

效果图如下 : [html] view plain copy   "http://www.w3.org/TR/html4/loose.dtd">   html xmlns="http://www.w3.org/1999/xhtml">       head>           meta http-equiv="Conten

爬虫 的博客 3964

泰森多面体Voronoi 3D-V5.0 功能介绍

Abaqus Voronoi3D

qq_34840441的博客 3364

农业杂草检测——棉花杂草数据集

然后将本层13×13的特征图谱经过×2上采样扩充到26×26,并与上层中26×26的特征图谱拼接,得到新的26×26的特征图谱,在该特征尺度上进行第二次预测,此时得到的特征图谱是相对输入图像16倍下采样,具有中尺度感受野,适合检测中等尺度对象;通过目标检测,能够及时清除杂草,减少病虫害的滋生和传播,保障棉花的健康生长,并有助于降低生产成本。对于地膜覆盖的棉田,由于膜内耕作层土温高、底墒好,杂草出苗早而集中,一般覆膜后5 - 7天杂草陆续出土,在墒情好的情况下,15天左右即形成出土高峰。

qq_38220914的博客 1247

HTML+CSS+JavaScript:利用事件委托实现tab栏切换

实现tab栏切换。

lbcbjtlhmjq的博客 644

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 590

JavaScript面向对象—— 动态创建tab标签页

昨天呢,介绍了js中类的概念,以及使用类创建对象的过程。今天就用js中的类实现一个小的功能,动态添加、删除标签页。emmmmm,也有点像tab栏切换,不过比tab栏切换多了添加和删除的功能。 案例说明 js动态实现标签页的创建和删除。这个案例呢,要用类来实现,Tab就是本次案例的类。但在写之前需要来分析并抽象类的特征和行为,也就是对应的类的属性和方法。 这里呢,我把元素的ID作为属性,增删改查的四...

爱前端的程序媛的博客 4250

喷雾破碎模型解析:从理论到CFD应用实践

本文深入解析喷雾破碎模型的理论基础与CFD应用实践,重点介绍KHRT、TAB和ETAB等主流模型的核心原理与工程调参技巧。通过OpenFOAM实例演示和参数优化建议,帮助工程师精准预测液滴破碎行为,提升燃烧效率与排放控制性能,适用于汽车发动机、燃气轮机等工业场景。

weixin_29281915的博客 499

从CPRI到eCPRI:手把手教你用Wireshark分析基站前传协议帧结构

本文手把手教你使用Wireshark工具,深入解析从CPRI到eCPRI的基站前传协议帧结构。通过搭建分析环境、编写解析脚本,并对比两者在时延管理、帧格式及数据封装上的差异,为无线通信领域的研发与测试人员提供了一套实用的逆向分析与故障排查方法。

x8y9z0的博客 605

原生js实现Tab切换

原生js实现Tab切换

weixin_47619284的博客 1914

2023华为OD面试手撕真题【最长公共前缀】

2023华为OD面试手撕真题【最长公共前缀】

MISAYAONE的博客 5241

隔行变色标签html,JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】

JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】发布时间:2020-09-07 23:30:37来源:脚本之家阅读:118作者:webbc本文实例讲述了JavaScript表格隔行变色和Tab标签页特效。分享给大家供大家参考,具体如下:最近一直在看JavaScript知识,偶尔也穿插一点Jquery,感觉Jquery用起来真爽,减少了很多的代码量,而且学习也不是很高。接下...

weixin_31304499的博客 498

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

react使用tab标签页的方法,以及jquery方法

这里写自定义目录标题react使用tab标签页的方法,以及jquery方法react写法jQuery方法新人入坑,不喜莫喷!!欢迎指点 react使用tab标签页的方法,以及jquery方法 react写法 以下是本人对应tab标签页的react方法的看法 import React, { Component, Fragment } from 'react'; {/* B1,B2,B3四个组件,之...

meiziweixun的博客 913

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

php表格js特效,JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】

本文实例讲述了JavaScript表格隔行变色和Tab标签页特效。分享给大家供大家参考,具体如下:最近一直在看JavaScript知识,偶尔也穿插一点Jquery,感觉Jquery用起来真爽,减少了很多的代码量,而且学习也不是很高。接下来给大家分享两个小的特效,表格隔行变色和Tab标签页,大家来体会一下。表格隔行变色效果图:原生Js实现代码:原生js表格隔行变色#table{width:500px...

weixin_30679649的博客 204

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaScript及jQuery实现tab标签页切换

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;&lt;/title&gt; &lt;script type="text/javascript" src="js/jq

Sibmle 3197

js和jquery分别实现tab标签页

首先列出样式和html标签

不忘初心,才能始终 878

tab 标签页实现

标签页功能是一个比较常用的功能。虽然很多前端框架、插件都带有若干种标签页的功能实现,我依然觉得掌握其基本实现会更有利于我们对这个功能的理解,我们也可以更容易地根据实际情况进行修改。 以下代码示例是一个比较常见的实现: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;t...

贵在坚持 8482

python如何实现隔行换色_JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】...

本文实例讲述了JavaScript表格隔行变色和Tab标签页特效。分享给大家供大家参考,具体如下:最近一直在看JavaScript知识,偶尔也穿插一点Jquery,感觉Jquery用起来真爽,减少了很多的代码量,而且学习也不是很高。接下来给大家分享两个小的特效,表格隔行变色和Tab标签页,大家来体会一下。表格隔行变色效果图:原生Js实现代码:原生js表格隔行变色#table{width:500px...

weixin_28764585的博客 361

html tab与jQuery,js与jquery分别实现tab标签页功能的方法

本文实例讲述了js与jquery分别实现tab标签页功能的方法。分享给大家供大家参考,具体如下:首先列出样式和html标签*{margin: 0;padding: 0;}#myul li {list-style: none; float: left; border: 1px solid #ddd; width: 100px; height: 20px; text-align: center; li...

weixin_42416490的博客 162

layui 关闭当前tab标签页和关闭所有tab标签页

在项目中需要关闭当前tab标签页和关闭所有tab标签页。 关闭当前tab标签页: function closeThis(){ top.layui.element.tabDelete("tab", top.jQuery(".layui-tab-title .layui-this").attr("lay-id")); } 关闭所有tab标签页 $('.close-...

YL 1万+

JavaScript特效—表格隔行变色和Tab标签页

最近一直在看JavaScript知识,偶尔也穿插一点Jquery,感觉Jquery用起来真爽,减少了很多的代码量,而且学习也不是很高。接下来给大家分享两个小的特效,表格隔行变色和Tab标签页,大家来体会一下。

webbc的博客 1484

Bootstrap标签页(Tab)插件事件

事件 下表列出了标签页(Tab)插件中要用到的事件。这些事件可在函数中当钩子使用。 事件描述实例 show.bs.tab 该事件在标签页显示时触发,但是必须在新标签页被显示之前。分别使用event.target和event.relatedTarget来定位到激活的标签页和前一个激活的标签页。 $('a[data-toggle="tab"]').on('sh...

adiking520110的博客 2450

ajax实现tab面板,jQuery实现简单的tab标签页效果

本文实例讲述了jQuery实现简单的tab标签页效果。分享给大家供大家参考,具体如下:tab1*{ padding: 0; margin: 0;}li{ list-style-type: none;}body{ margin: 50px;}.hide{ display: none;}.tabTitle ul{ overflow: hidden; _height:1px;}.tabTitle ul ...

weixin_31032795的博客 435

JS 实现Tab标签页切换的效果

虽然好多框架都集成有现成Tab标签页切换的例子,但还是自己写一下吧!效果图: HTML的demo <!doctype html> <html lang="ch"> <head> <meta charset="UTF-8"> <title>标题切换内容</title> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.j

随风潜入夜,不白头 2016
上一篇: js 跳出循环后,终止循环体后代码的运行
下一篇: echarts常用样式
iblackboy
博客等级 码龄7年 33粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值