JavaScrip - tab栏切换案例

简介: JavaScrip - tab栏切换案例

这个就是导航栏切换案例,分析html结构就是将导航栏的全部东西封装到一个大盒子里面,这个大盒子里面有上下两个小盒子,上面的小盒子装的是导航栏的内容,使用的是ul>li的结构,下面的小盒子就是每一个的导航栏详细内容,所以上面的导航栏li和下面的div数量是一一对应的,数量是相等的,第一步骤先设置点击之后的背景颜色变换,使用的是排他思想,先将背景颜色的类名全部清除,之后就是将点击的导航栏加上类名,第二步后处理上下两个盒子的关联性问题,最主要的是确定对应位置,使用的是自定义属性标记一下,给每一个小添加index自定义属性,之后切换的时候


基础知识补充


1.获取元素的属性值


console.log(div.getAttribute('index'));


2.自定义属性


element.setAttribute('属性', '值');  主要针对于自定义属性
div.setAttribute('index', 2);


3.移除属性


移除属性 removeAttribute(属性)    
div.removeAttribute('index');


<!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>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        li {
            list-style-type: none;
        }
        .tab {
            width: 978px;
            margin: 100px auto;
        }
        .tab_list {
            height: 39px;
            border: 1px solid #ccc;
            background-color: #f1f1f1;
        }
        .tab_list li {
            float: left;
            height: 39px;
            line-height: 39px;
            padding: 0 20px;
            text-align: center;
            cursor: pointer;
        }
        .tab_list .current {
            background-color: #c81623;
            color: #fff;
        }
        .item_info {
            padding: 20px 0 0 20px;
        }
        .item {
            display: none;
        }
    </style>
</head>
<body>
    <div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">商品介绍</li>
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(50000)</li>
                <li>手机社区</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;">
                商品介绍模块内容
            </div>
            <div class="item">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价(50000)模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>
        </div>
    </div>
    <script>
        // 1. 背景色
        var tab_list = document.querySelector('.tab_list') ;
        var lis = tab_list.querySelectorAll('li') ;
        var items = document.querySelectorAll('.item') ;
        for ( var i = 0 ; i < lis.length ; i ++ ) {
            // 开始给五个小li设置索引号,使用自定义属性
            lis[i].setAttribute('index' ,i) ;
            lis[i].onclick = function () {
                // 排他思想 
                for ( var i = 0 ;i < lis.length ; i ++ ) {
                    lis[i].className = '' ;
                }
                this.className  = 'current' ;    //不需要加.
                var index =  this.getAttribute('index') ;
                // console.log(index); 
                for ( var i = 0 ; i < items.length ; i ++ ) {
                    items[i].style.display = 'none' ;
                }
                items[index].style.display = 'block' ;
            }
        }
    </script>
</body>
</html>


相关文章
|
1月前
|
JavaScript
jquery实现单击div切换背景,再次单击回到原来样式
jquery实现单击div切换背景,再次单击回到原来样式
8 0
|
3月前
|
JavaScript 前端开发
js小功能--如何实现按住shift拖拽多选div
js小功能--如何实现按住shift拖拽多选div
32 0
|
10月前
|
JavaScript 前端开发
使用JS来实现tab栏切换
使用JS来实现tab栏切换
82 0
|
JavaScript
|
JavaScript 前端开发
【Jquery练习】tab栏切换
在实现今天的练习之前,我们先来了解一下排他思想,排他思想也就是为当前元素设置一个特定的样式,并为其他兄弟元素清除样式。多用于多选一的效果。
97 0
|
JavaScript
JavaScript-TAB栏切换
JavaScript-TAB栏切换
62 0
|
小程序
tab栏组件使用介绍
tab栏组件使用介绍
tab栏组件使用介绍
|
前端开发 索引
前端实现tab栏切换,这么常见的案例你学会了吗?
tab栏切换制作是我们web开发中一个十分常见的案例,今天在这里写写,希望对大家有所帮助,还是要用到我们上节写到的排他思想!好好学哦!
909 0
前端实现tab栏切换,这么常见的案例你学会了吗?
Axure实现Tab选项卡切换功能
这几天用Axure画原型图的过程中,需要实现Tab选项卡切换的效果,但Axure中并没有类似于Tab控件的部件,所以可以用Axure中的动态面板(Dynamic Panel)来实现。 本文以已经汉化的Axure7.0为例,英语不太好的朋友可以先进行汉化(汉化的时候要注意版本,不同的版本,汉化文件也稍有差异)。
Axure实现Tab选项卡切换功能