<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>网页定位导航</title> <style> * { margin: 0; padding: 0 } body { font-size: 12px; line-height: 1.7; } li { list-style: none; } #content { width: 800px; margin: 0 auto; padding: 20px; } #content h1 { color: #0088bb; } #content .item { padding: 20px; margin-bottom: 20px; border: 1px dotted #0088bb; } #content h2 { font-size: 15px; font-weight: bold; border-bottom: 2px solid #0088bb; } #content .item li { display: inline; margin-right: 10px; } #content .item li a img { width: 230px; height: 230px; border: none; } #menu { position: fixed; top: 100px; left: 50%; margin-left: 400px; width: 80px; } #menu ul li a { display: block; margin: 5px 0; font-size: 14px; font-weight: bold; color: #333; width: 80px; height: 50px; line-height: 50px; text-decoration: none; text-align: center; } #menu ul li a:hover, #menu ul li a.current { color: #fff; background: #0088bb; } </style> <script> function getByClassName(obj, cls) { var elements = obj.getElementsByTagName("*"); var result = []; for (var i = 0; i < elements.length; i++) { if (elements[i].className == cls) { result.push(elements[i]); } } return result; } window.onload = function () { window.onscroll = function () { var top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; var menus = document.getElementById("menu").getElementsByTagName("a"); var items = getByClassName(document.getElementById("content"), "item"); var currentId = ""; for (var j = 0; j < items.length; j++) { var m = items[j]; var itemTop = m.offsetTop; if (top > itemTop - 300) { currentId = m.id; } else { break; } } if (currentId) { for (var k = 0; k < menus.length; k++) { var n = menus[k]; var _href = n.href.split("#"); if (_href[_href.length - 1] != currentId) { n.className = ""; } else { n.className = "current"; } } } } } </script> </head> <body> <div id="menu"> <ul> <li><a href="#item1" class="current">1F 男装</a></li> <li><a href="#item2">2F 女装</a></li> <li><a href="#item3">3F 美妆</a></li> <li><a href="#item4">4F 数码</a></li> <li><a href="#item5">5F 母婴</a></li> </ul> </div> <div id="content"> <h1>购物网</h1> <div id="item1" class="item"> <h2>1F 男装</h2> <ul> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> <li><a href="#"><img src="1F.jpg" alt=""/></a></li> </ul> </div> <div id="item2" class="item"> <h2>2F 女装</h2> <ul> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> <li><a href="#"><img src="2F.jpg" alt=""/></a></li> </ul> </div> <div id="item3" class="item"> <h2>3F 美妆</h2> <ul> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> <li><a href="#"><img src="3F.jpg" alt=""/></a></li> </ul> </div> <div id="item4" class="item"> <h2>4F 数码</h2> <ul> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> <li><a href="#"><img src="4F.png" alt=""/></a></li> </ul> </div> <div id="item5" class="item"> <h2>5F 母婴</h2> <ul> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> <li><a href="#"><img src="5F.jpg" alt=""/></a></li> </ul> </div> </div> </body> </html>
我刚开始的错误出在if (_href[_href.length - 1] != currentId)这里,我之前写成了if (_href[-_href.length - 1] != currentId),真是太低级的错误啊!大家一定要仔细。
给当前楼层添加current样式的代码中,那样写会把之前的current样式也去除掉,而且也添加不上
嗯嗯 粗心大意会浪费很多时间的!建议刚开始写的时候,不要追求速度,写的时候认真一点,少出错最好!