tab栏切换

效果图
在这里插入图片描述
css代码

<style>
        #list li {
            list-style: none;
            width: 80px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            background-color: beige;
            float: left;
            margin-left: 5px;
        }
        
        #list li.current {
            background-color: burlywood;
        }
        
        #list li a {
            text-decoration: none;
        }
    </style>

html代码

<body>
    <div id="menu">
        <ul id="list">
            <li class="current"><a href="http://www.baidu.com">首页</a></li>
            <li><a href="javascript:void(0)">播客</a></li>
            <li><a href="javascript:void(0)">博客</a></li>
            <li><a href="javascript:void(0)">相册</a></li>
            <li><a href="javascript:void(0)">关于</a></li>
            <li><a href="javascript:void(0)">帮助</a></li>
        </ul>
    </div>
</body>

javaScript 代码

<script>
        /**
         * 获取父级元素中的第一个子元素
         * @param element 父级元素
         * @returns {*} 父级元素中的子级元素
         */
        function getFirstElement(element) {
            if (element.firstElementChild) {
                return element.firstElementChild;
            } else {
                var node = element.firstChild;
                while (node && node.nodeType != 1) {
                    node = node.nextSibling;
                }
                return node;
            }
        }

        function my$(id) {
            return document.getElementById(id);
        };
        //获取所有的li标签
        var liObjs = my$("list").getElementsByTagName("li");
        //循环遍历,找到每一个里中的a,注册事件
        for (var i = 0; i < liObjs.length; i++) {
            //每一个li中的a
            var aObj = getFirstElement(liObjs[i]);
            aObj.onclick = function() {
                //用排他方法  除去所有li的class属性
                for (var j = 0; j < liObjs.length; j++) {
                    liObjs[j].removeAttribute("class");
                }
                //再设置当前被点击的li背景颜色 因为被点击的是a,但设置class的父级元素
                this.parentNode.className = "current";
                //阻止超链接跳转或者默认事件
                return false;
            };
        }
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值