老师帮忙检查下作业 ,有没有可以优化的地方

老师帮忙检查下作业 ,有没有可以优化的地方

<style>

.nav{margin: 30px 50px; font-size: 0; position: relative;}

.nav ul{width: 350px;}

.nav ul li{width: 70px; font-size: 14px; color: #333; display: inline-block; cursor: pointer;}

.nav ul li.current{color: #f01400;}

.line{width: 32px; height: 4px; background-color: #f01400; position: absolute; left: -2px; transition: left .5s ease;}

</style>


<nav class="nav" id="nav">

        <ul id="ul">

            <li data-n="1" class="current">首页</li>

            <li data-n="2">信息</li>

            <li data-n="3">新闻</li>

            <li data-n="4">广告</li>

            <li data-n="5">咨询</li>

        </ul>

        <div class="line" id="line"></div>

    </nav>

    <script>

        var ul = document.getElementById('ul');

        var lis = document.querySelectorAll('ul li');

        var line = document.getElementById('line');

        ul.onmouseover = function (e) {

            for (var i = 0; i < lis.length; i++) {

                lis[i].className = '';

            }

            e.target.className = "current";

            var idx = e.target.getAttribute('data-n');

            console.log(idx);

            if (idx == 1) {

                line.style.left = idx - 3 + 'px';

            } else {

                line.style.left = (idx - 1) * 70 - 3 + 'px';

            }

        }

    </script>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-11-07 16:06:54

同学你好,作业只粘贴了nav导航部分的代码,nav导航实现效果基本没问题,以下js代码可以简化一下,如图

https://img1.sycdn.imooc.com//climg/6187890b0926eaff08680506.jpg

祝学习愉快!

  • 提问者 qq_慕神8318241 #1

    老师这是怎么算的 我怎么看的可迷了

    2021-11-07 16:17:50
  • 好帮手慕然然 回复 提问者 qq_慕神8318241 #2

    同学你好,解答如下:

    根据同学的代码,老师猜测同学应该是要修正导航项下面红色短线的位置,修正距离是2px。

    假如,不修正那个2px,每次需要移动的距离为(idx - 1) * 70,此时每个导航项与下面的短线都会有2px的偏差,如图

    https://img1.sycdn.imooc.com//climg/6187933209e908c905930476.jpg

    而如果每个导航项与下面短线的偏差都是2px,那么只需在每次移动的距离之上减去2px,即(idx - 1) * 70-2即可修正,而不需要进行if判断分别修正。

    祝学习愉快!


    2021-11-07 17:01:45
  • 提问者 qq_慕神8318241 回复 好帮手慕然然 #3

    明白了谢谢老师

    2021-11-07 17:55:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师