麻烦老师看一下哪里可以优化
来源: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回答
同学你好,可做如下优化:
1、下划线初始应该是显示状态、第一个导航应该是激活状态:


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


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