老师,我这个有点问题,我点击了下面两个的时候就没反应了,而且点击的次数多了就会报错?
<!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>
* {
padding: 0;
margin: 0;
}
.box {
width: 1000px;
background-color: skyblue;
height: 500px;
margin: 30px auto;
font-size: 100px;
}
#list {
list-style: none;
width: 100px;
height: 160px;
background-color: tan;
text-align: center;
position: fixed;
right: 20px;
top: 50%;
margin-top: -75px;
}
#list li {
height: 20px;
width: 100px;
margin-top: 10px;
cursor: pointer;
}
#list li:last-child {
margin-bottom: 10px;
}
</style>
</head>
<body>
<div class="box" data-n="新闻">新闻栏目</div>
<div class="box" data-n="娱乐">娱乐栏目</div>
<div class="box" data-n="世界">世界军事栏目</div>
<div class="box" data-n="动物">动物世界栏目</div>
<div class="box" data-n="探索">探索发现栏目</div>
<nav>
<ul id="list">
<li data-n="新闻">新闻栏目</li>
<li data-n="娱乐">娱乐栏目</li>
<li data-n="世界">世界军事</li>
<li data-n="动物">动物世界</li>
<li data-n="探索">探索发现</li>
</ul>
</nav>
<script>
var list = document.getElementById('list');
list.onclick = function (e) {
if (e.target.tagName.toLowerCase() == 'li') {
var n=e.target.getAttribute('data-n');
}
var a= document.querySelector('.box[data-n='+ n +']');
document.documentElement.scrollTop=a.offsetTop;
}
</script>
</body>
</html>
这是报错信息
楼层导航小效果.html:73 Uncaught TypeError: Cannot read property 'offsetTop' of null
at HTMLUListElement.list.onclick (楼层导航小效果.html:73)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星