我想制作一个动态导航栏,它可以通过突出显示与其所在页面相关的图像按钮边框来识别当前页面。例如,在 index.html
homeButton.jpg
上突出显示了 —。我希望这是动态的而不是静态编码的。我正在使用模板 我希望主要内容是唯一可编辑的内容。
这是我的导航栏 HTML 代码:
<ul id="navbar">
<li><a href="../index.html" ><img id="theImg" src="../images/Buttons/homeBtn.jpg" name="homebtn" alt="Home" border="0" /></a></li>
<li><a href="../pages/about.html"><img src="../images/Buttons/aboutBtn.jpg" alt="About" border="0" /></a></li>
<li><a href="../pages/mediapages/media.html"><img src="../images/Buttons/mediaBtn.jpg" alt="Media" border="0" /></a></li>
<li><a href="../pages/downloads.html"><img src="../images/Buttons/downloadBtn.jpg" alt="Download" border="0" /></a></li>
<li><a href="../pages/contactpages/contacts.html"><img src="../images/Buttons/contactBtn.jpg" alt="contact" border="0" /></a></li>
<li><a href="../pages/blog.html" target="_blank"><img src="../images/Buttons/blogBtn.jpg" alt="blog" border="0" /></a></li>
</ul>
和 JavaScript 代码:
var examplehtml = [['http://example.com/'],['http://www.example.com/']];
var navRoot = document.getElementById("navbar").getElementsByTagName("img");
var currentpage = document.location.href;
if(currentpage == examplehtml [0] || currentpage == examplehtml [1] ){
navRoot[0].src = "../images/Buttons/homeBtn2.jpg";
return;
}
var indexpage = currentpage.search(/index.html/);
var aboutpage = currentpage.search(/about.html/)
var mediapage = currentpage.search(/mediapages/);
var downloadpage = currentpage.search(/downloads.html/);
var contactpage = currentpage.search(/contacts.html/);
var commentsentpage = currentpage.search(/comment_sent.html/);
if(indexpage>-1){navRoot[0].src = "../images/Buttons/homeBtn2.jpg";return;}
if(aboutpage>-1){navRoot[1].style.border='1px solid #fff';return;}
else if(mediapage>-1){navRoot[2].style.border='1px solid #fff';return;}
else if(downloadpage>-1){navRoot[3].style.border = '1px solid #fff';return;}
else if(contactpage>-1){navRoot[4].style.border='1px solid #fff';return;}
else if(commentsentpage>-1){navRoot[4].style.border = '1px solid #fff';return;}
}
window.onload = Getcurrentpage;
我想知道是否有更好的方法来执行此操作或我可以做些什么来提高性能?
原文由 Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议
将你的 JS 和 CSS 分开;首先将样式放在 CSS 中: CSS:
HTML:
记者:
这是一个 活生生的例子。