还是求助导航变换背景问题
想做成这个页面的导航效果,http://download.csdn.net/ 就是点击了这个页面的 排行榜 那么新的页面排行榜上就变换,这个点击我通过cookie已经弄出来了,现在还有一个功能就是 输入网址直接打开对应的导航也变换,比如地址栏直接打开http://download.csdn.net/rankings 这个网址,它的排行榜 这个菜单上也和其它不一样,是根据网址来分析吗?这个是不是通过js来完成的,求助怎么做的?
[解决办法]
获取当前的url路径location.pathname,然后和导航中的链接匹配,匹配了就设置焦点样式
建立1.html,2.html,3.html,4.html文件,内容全部为下面的
<div id="dvGuider">
<a href="1.html">1.html</a>
<a href="2.html">2.html</a>
<a href="3.html">3.html</a>
<a href="4.html">4.html</a>
</div>
<style>
a.focus{background:#ff0000;color:#ffffff;}
</style>
<script>
var pn = location.pathname;
var as = document.getElementById('dvGuider').getElementsByTagName('a');
for (var i = 0, j = as.length; i < j; i++)
if (as[i].href.indexOf(pn) != -1) {as[i].className = 'focus';break;}
</script>
<!doctype>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
a.mouseOver {
background-color: red;
}
</style>
<script type="text/javascript">
window.onload = function(){
var lis = document.getElementById("links").getElementsByTagName("li");
for (var i = lis.length - 1; i >= 0; i--) {
var aE = lis[i].getElementsByTagName("a")[0];
aE.addEventListener("mouseover", changeBackgroud);
aE.addEventListener("mouseout", changeBackgroud);
}
}
function changeBackgroud(e){
if (e.type === 'mouseover') {
e.target.className = "mouseOver";
}
else {
e.target.className = "";
}
}
</script>
</head>
<body>
<ul id="links">
<li>
<a href="page1.html">1</a>
</li>
<li>
<a href="page2.html">2</a>
</li>
<li>
<a href="page3.html">3</a>
</li>
<li>
<a href="page4.html">4</a>
</li>
</ul>
</body>
</html>
<div id="dvGuider">css
<a href="Untitled-49.html">1.html</a>
<a href="Untitled-50.html">2.html</a>
<a href="Untitled-51.html">3.html</a>
<a href="Untitled-52.html">4.html</a>
</div>
<script>
var as = document.getElementById('dvGuider').getElementsByTagName('a');
document.getElementById('dvGuider').onclick = function(e) {
var e = e
[解决办法]
window.event;
var current = e.target
[解决办法]
e.srcElement;
for(var i=0; i<as.length; i++) {
as[i].className = '';
}
current.className = 'focus';
}
</script>
a.focus{background:#ff0000;color:#ffffff;}