麻烦老师看一下哪里可以优化

来源:2-8 项目作业

Cap卡卡卡普

2022-05-17 18:47:18

相关代码:

<style>
        * {
            margin: 0;
            padding: 0;
        }
        section{
            margin-top: 20px;
        }

        ul {
            list-style: none;
            width: 400px;
            height: 40px;
        }

        a {
            text-decoration: none;
            color: black;
        }

        .wrap {
            width: 1152px;
            margin: 0 auto;
            position: relative;
        }

        h2 {
            font-size: 20px;
            font-weight: normal;
            float: left;
        }

        nav {
            float: right;
            margin-right: 60px;
            position: relative;
        }

        ul li {
            float: left;
            width: 50px;
            height: 30px;
            padding-right: 15px;
            padding-left: 15px;
            padding-top: 5px;
        }
        ul li.current a{
            color: #f01400;
        }

        button {
            position: absolute;
            right: 0;
            background-color: black;
            color: white;
            width: 70px;
            height: 30px;
            cursor: pointer;
        }
        .underline{
            position: absolute;
            bottom: 0;
            left: 12px;
            width: 39px;
            border-bottom: 3px solid #f01400;
            display: none;
            transition: left .5s ease 0s;
        }
    </style>

相关代码:

<section>
        <div class="wrap">
            <h2>慕课手机</h2>
            <nav id="nav-list">
                <ul id="list">
                    <li class="l1" data-n="l1">
                        <a href="javascript:;" data-i="0">首页</a>
                    </li>
                    <li class="l2" data-n="l2">
                        <a href="javascript:;" data-i="1">外观</a>
                    </li>
                    <li class="l3" data-n="l3">
                        <a href="javascript:;" data-i="2">配置</a>
                    </li>
                    <li class="l4" data-n="l4">
                        <a href="javascript:;" data-i="3">型号</a>
                    </li>
                    <li class="l5" data-n="l5">
                        <a href="javascript:;" data-i="4">说明</a>
                    </li>
                </ul>
                <div class="underline" id="underline"></div>
            </nav>
            <button id="btn">立即购买</button>
        </div>
    </section>

相关代码:

<script>
        var navList = document.getElementById('nav-list');
        var list = document.getElementById('list');
        var lis = document.querySelectorAll('#list li');
        var underLine = document.getElementById('underline');
        var btn = document.getElementById('btn');
        var aLis = list.querySelectorAll('a');

        navList.onmouseover = function(e){
            if(e.target.tagName.toLowerCase() == 'li'){
                var n = e.target.getAttribute('data-n');
                for(var i = 0;i < lis.length;i++){
                    lis[i].className = lis[i].getAttribute('data-n');
                }
                e.target.className += ' current';
            }
            if(e.target.tagName.toLowerCase() == 'a'){
                var index = e.target.getAttribute('data-i');
                underLine.style.display = 'block';
                underLine.style.left = 12 + 80 * index + 'px';
            }
        }
    </script>


写回答

1回答

好帮手慕久久

2022-05-18

同学你好,可做如下优化:

1、下划线初始应该是显示状态、第一个导航应该是激活状态:

https://img.mukewang.com/climg/6284520d09313d0006390274.jpg

https://img.mukewang.com/climg/6284523b09e306d900000000.jpg

2、li上,l1、l2这些类名都没用,data-n属性也可以不写:

https://img.mukewang.com/climg/628452d109f0533108000195.jpg

https://img.mukewang.com/climg/628452f109524c0109190477.jpg

同学此处的写法是对的,通用性比较广,很棒!上述修改方式,只是针对本习题帮同学再简化一下,参考即可。

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程