2-8项目作业,麻烦老师帮忙检查一下

2-8项目作业,麻烦老师帮忙检查一下

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        *{

            margin: 0;

            padding: 0;

        }

        .nav{

            margin-top: 20px;

            width: 1200px;

            height: 50px;

            margin: 0 auto;

            padding-top: 20px;

        }

        .nav h1{

            width:150px;

            font-weight:lighter;

            font-size: 30px;

            float: left;

            height: 50px;

            line-height: 50px;

        }

        .nav .rigth-nav{

            float: right;

            width: 510px;

            height: 50px;

            position: relative;

        }

        .nav ul{

            float: left;

            width: 400px;

            height: 50px;

        }

        .nav ul li{

            width: 80px;

            height: 50px;

            float: left;

            list-style: none;

            line-height: 50px;

            text-align: center;

        }

        .nav ul li.current{

            color:#f01400 ;

        }

        .nav .nav-hr{

            position: absolute;

            left: 0;

            bottom: 0;

            width:80px;

            height: 3px;

            background-color: #f01400;

        }

        .nav .rigth-nav a{

            float: right;

            width: 110px;

            height: 50px;

            background-color: #000;

            color: white;

            text-decoration: none;

            line-height: 50px;

            text-align: center;

        }

    </style>

</head>

<body>

    <div class="nav">

        <h1>慕课手机</h1>

        <div class="rigth-nav">

            <ul id="navList">

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

                <li data-n="1">外观</li>

                <li data-n="2">配置</li>

                <li data-n="3">型号</li>

                <li data-n="4">说明</li>

            </ul>

            <div class="nav-hr" id="navHr"></div>

            <a href="javascript:;">立即购买</a>

        </div>

    </div>

    <script>

        //获取元素

        var navList=document.getElementById("navList");

        var navHr=document.getElementById("navHr");

        var lis=document.querySelectorAll("#navList li");


        //导航栏列表的每一项的鼠标进入事件委托给父元素ul

        navList.onmouseover=function(e){

            if(e.target.tagName.toLowerCase()=="li"){

                //获取当前li的data-n属性值

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

                //让下划线移动到当前列表项的下面

                navHr.style.transition="left .5s ease 0s";

                navHr.style.left=80*n+"px";

                //排他先让所有的列表项的class为空

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

                    lis[i].className='';

                }

                //让当前的列表项拥有current类

                e.target.className="current";

            }

        }

    </script>

</body>

</html>


正在回答

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

1回答

同学你好,思路是没有问题的,下划线宽度太大,与题目略有偏差:

https://img1.sycdn.imooc.com//climg/62b3c6e0096e38c805160091.jpg

将ul外面的盒子宽度调小一点,修改参考如下:

https://img1.sycdn.imooc.com//climg/62b3c70109aac9ab03910334.jpg

将ul本身的宽度也调小一点

https://img1.sycdn.imooc.com//climg/62b3c73009c4b02802650212.jpg

修改每个li的宽度,并给与间隔宽度

https://img1.sycdn.imooc.com//climg/62b3c78c09a2432103840399.jpg

修改下划线的宽度与li宽度相等,并且给与定位:

https://img1.sycdn.imooc.com//climg/62b3c7d10921f72f03260317.jpg

修改js中下划线的滑动位置,由于margin-left:30px;所以起始位置需要从30开始;

https://img1.sycdn.imooc.com//climg/62b3c84909be3e2704950147.jpg


https://img1.sycdn.imooc.com//climg/62b3c87409831f1a03550079.jpg


祝学习愉快~

  • 柏木子 提问者 #1
    好的,蟹蟹
    2022-06-23 10:01:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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