返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现Tab栏切换特效
  • 228
分享到

JavaScript实现Tab栏切换特效

2024-04-02 19:04:59 228人浏览 八月长安
摘要

这里分享一个前端必会的案例,是一个Tab栏的切换效果,除了Tab栏本身会被点击切换之外,Tab本身也决定着其下方的内容板块的显示。 运行效果展示: 如上图所示,其实就是点击上方的

这里分享一个前端必会的案例,是一个Tab栏的切换效果,除了Tab栏本身会被点击切换之外,Tab本身也决定着其下方的内容板块的显示。

运行效果展示:

如上图所示,其实就是点击上方的Tab栏然后Tab栏本身的样式会被修改,然后其下方的内容块也会跟着显示对应的内容。这样的效果以及功能在前端的应用是非常广泛的,所以这可以说是前端必会了。话不多说下面先上代码:

(这里就不上CSS样式代码了,个人根据需求进行设置即可,li用float布局就好)

html的结构:


<div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">商品介绍</li><!-- 默认选中第一个li,current是决定红底白字的样式的 -->
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(50000)</li>
                <li>手机社区</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;"><!-- 这个item是默认显示的,因为所有的item的display值都为none -->
                商品介绍模块内容
            </div>
            <div class="item">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价(50000)模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>
 
        </div>
</div>

下面是js代码:


<script>
        // 业务需求:点击tab栏被点击的tab栏拥有不一样的样式,其下方的div也要跟着点击进行切换实现内容也跟着变动的效果
        var tab_list = document.querySelector('.tab_list');
        var lis = tab_list.querySelectorAll('li');
        var tabs = document.querySelectorAll('.item');
        for (var i = 0; i < lis.length; i++) {
            lis[i].setAttribute('data-index', i);    // 给每个li添加一个data-index的自定义属性,值是它们自己在lis中的下标,这个值主要让我们判断我们当前点击的是哪个li从而帮助我们后续修改它对应的div的display值
            lis[i].onclick = function () {
                // 1.第一步,用排他思想先做出用户点击谁就给谁class属性赋值,注意其他没有被点击的都需要操作它们的class值为空,这就是干掉其他人留下我自己的排他思想
                for (var i = 0; i <lis.length; i++) {
                    lis[i].className = '';  // 用循环先将所有人(包括自己)的class类名为空
                }
                // 再单独给自己修改class类名即留下我自己
                this.className = 'current';  // current这个类名的CSS样式是已经写好了的
                
                // 然后上面的tab栏样式好了就要处理第二步就是点击谁就让其对应的下属div显示出来,其他没有被点击的就隐藏,这里主要是需要先知道用户点击的是谁,然后再给对象的div设置display为block即可。还是需用用排他思想来做哦
                // 第二步:根据点击修改div的display属性值
                var index = this.getAttribute('index'); // 获取当前被点击的li的index
                for (var i = 0; i < lis.length; i++) { // 用循环让每个item的display都为none即干掉所有人
                    tabs[i].style.display = 'none';
                }
                // 在tabs中定li的index对应的item单独将它的display值改成block即留下我自己
                tabs[index].style.display = 'block';
            }
        }
</script>

这里再说下实现步骤和思路(JS代码里已有详细分析):首先功能大致分两步:第一,对li标签的样式修改,即用户点击哪个li该li的样式随着改变为红底白字,而它之外的其他li则是灰底黑字的默认样式;第二,上面的样式修改了下面的文字模块的内容也要随之改变,下面其实是放了与li一一对应的div来装文字内容,只是它们的显示是由Tab栏的li决定的,所以要实现div的文字随着li变动我们就需要知道当前用户点击的是哪个li,这里用到的方法是 lis[i].setAttribute('index', i),即用循环给每一个li标签添加一个自定义属性index值等于lis(所有的li组成的数组)的索引,则根据index的值我们就能知道用户点击的是哪个li了,这样我们再决定是哪个div显示出来就可以了。(建议看代码结合注释更好理解一些)

注意:这里再说一下“排他思想”,即像这样的列表或是表格之类的元素对象,一般可以统一获取再存入一个数组中的元素对象,我们要控制当前选中的该元素和其他没有被选中的元素“有所不同”时,就常常设计“排他思想”,主要分两步实现:1.用循环遍历将这些所有的元素(包括选中的那个元素)都“干掉”,这一步主要是让所有的元素“都一样”谁也没有不同之处,然后再给我们选中的那个元素添加上我们想要给它的样式或功能(即留下我自己)。这样两步加起来,就实现了选中谁,谁“不一样”的效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JavaScript实现Tab栏切换特效

本文链接: https://lsjlt.com/news/129503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript实现Tab栏切换特效
    这里分享一个前端必会的案例,是一个Tab栏的切换效果,除了Tab栏本身会被点击切换之外,Tab本身也决定着其下方的内容板块的显示。 运行效果展示: 如上图所示,其实就是点击上方的...
    99+
    2024-04-02
  • JavaScript怎么实现Tab栏切换特效
    这篇文章给大家分享的是有关JavaScript怎么实现Tab栏切换特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里分享一个前端必会的案例,是一个Tab栏的切换效果,除了Tab栏本身会被点击切换之外,Tab本...
    99+
    2023-06-20
  • JavaScript实现tab栏切换的效果
    tab栏:点击不同的标签,显示不同的内容,被点击的标签样式发生改变(突出选中的是哪一个) 实现思路: 1、将tab栏分为上下两部分,上面是导航列表,下面是各部分对应的内容。把标签和内...
    99+
    2024-04-02
  • angularjs实现Tab栏切换效果
    本文实例为大家分享了angularjs实现Tab栏切换效果的具体代码,供大家参考,具体内容如下 如图所示 选中后提交的实例代码: <!DOCTYPE html> <...
    99+
    2024-04-02
  • vue实现tab栏切换效果
    本文实例为大家分享了vue实现tab栏切换效果的具体代码,供大家参考,具体内容如下 一个简单的tab栏切换组件,由tabs以及tab-pane组成 效果图 使用 <templ...
    99+
    2024-04-02
  • JavaScript实现简易tab栏切换内容栏
    本文实例为大家分享了JavaScript实现简易tab栏切换内容栏的具体代码,供大家参考,具体内容如下 html+css部分 <!DOCTYPE html> <...
    99+
    2024-04-02
  • JavaScript实现简易tab栏切换案例
    本文实例为大家分享了JavaScript实现简易tab栏切换效果的具体代码,供大家参考,具体内容如下 1. tab栏-案例1 tab栏分析 li里面的分析 js实现隐藏与显示 ...
    99+
    2024-04-02
  • JavaScript实现Tab栏切换功能详解
    目录1.实现效果2.功能需求3.抽象对象4.切换功能实现5.添加功能实现6.删除功能实现1.实现效果 2.功能需求 点击tab栏,可以切换效果.点击+号,可以添加tab项和内容项....
    99+
    2022-11-13
    JS Tab栏切换 JavaScript Tab栏切换
  • angularjs怎么实现Tab栏切换效果
    这篇文章主要讲解了“angularjs怎么实现Tab栏切换效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“angularjs怎么实现Tab栏切换效果”吧!如图所示选中后提交的实例代码:&l...
    99+
    2023-06-29
  • js实现tab栏切换制作
    本文实例为大家分享了js实现tab栏切换制作的具体代码,供大家参考,具体内容如下 效果: 思想: 1.点击每个tab时。要先用排他思想,使得所有li不加上背景,再让点击的tab加上...
    99+
    2024-04-02
  • js和jquery实现tab状态栏切换效果
    今天做一个简单的小案例,用js和jquery分别去实现点击tab栏,实现切换的目的,效果如下图: 代码如下: <!DOCTYPE html> <html>...
    99+
    2024-04-02
  • JavaScript实现Tab点击切换
    Tab 选项卡切换效果在现如今的网页中,运用的也是比较多的,包括点击切换、滑动切换、延迟切换、自动切换等多种效果,在这篇博文里,我们是通过原生 Jquery 来实现 Tab 点击切换...
    99+
    2024-04-02
  • JS实现简单Tab栏切换案例
    本文实例为大家分享了JS实现简单Tab栏切换的具体代码,供大家参考,具体内容如下 要求:当鼠标点击上面相应的选项卡(tab),下面页面的内容也随之而改变。 结构分析: 全部的内容都放...
    99+
    2024-04-02
  • JS如何实现简单Tab栏切换
    这篇文章主要为大家展示了“JS如何实现简单Tab栏切换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现简单Tab栏切换”这篇文章吧。具体内容如下要求:当鼠标点击上面相应的选项卡(tab...
    99+
    2023-06-29
  • Vue中tab栏切换的简单实现
    目录一、效果展示二、实现原理三、css和h5的代码,获得最基本的样式1.css2.H5 这是没有在使用Vue书写前的样式四、Vue部分一、效果展示 二、实现原理 主体通过绑定事件,...
    99+
    2024-04-02
  • js如何实现tab切换效果
    这篇文章主要介绍了js如何实现tab切换效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果如下:代码如下:<!DOCTYPE&nb...
    99+
    2024-04-02
  • vue实现鼠标滑动展示tab栏切换
    本文实例为大家分享了vue实现鼠标滑动展示tab栏切换的具体代码,供大家参考,具体内容如下 动画效果: 代码如下: <template>   <div id="h...
    99+
    2024-04-02
  • vue怎么实现菜单栏滑动切换特效
    现代网页设计强调用户体验和交互性,让用户可以方便快捷地完成自己的目的。为了实现这一目标,很多网站都会采用滑动效果,例如点击菜单栏上的某个链接,网页就会平滑地滑动到相应位置,有效地提供了用户体验,提高了网站可用性。Vue.js作为一种流行的J...
    99+
    2023-05-14
  • css中怎么实现tab切换效果
    今天就跟大家聊聊有关css中怎么实现tab切换效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 其实是使用锚点作为标...
    99+
    2024-04-02
  • vue实现tab切换的放大镜效果
    本文实例为大家分享了vue实现tab切换的放大镜效果的具体代码,供大家参考,具体内容如下 废话不多说先看效果图 1.我这里并没有加遮罩层,如有需要请自行加上 2.图片建议使用4k高...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作