<分区>
标签 javascript html css
<分区>
我正在创建一个静态网站。我想显示当前选项卡用户正在以不同的颜色查看(除了正常的导航菜单选项卡)。如何在不使用任何服务器端脚本的情况下执行此操作?
提前致谢。
最佳答案
这取决于你如何组织你的逻辑......例如,如果你有前端 Controller 并且你得到当前页面应该通过 GET
参数显示(page
)你可以:
PHP
$current = $_GET['page'];
print '<ul class="menu">';
while ($page = $pages->getNext()) {
$label = $page->getLabel();
if ($page->getName() === $current) {
print '<li class="menu-item selected">' . $label . '</li>';
} else {
print '<li class="menu-item">' . $label . '</li>';
}
}
print '</ul>';
正如您在脚本中看到的,我们根据这是否是当前页面打印不同类型的列表项。如果这是当前页面,我们的列表项有类 selected
和 menu-item
否则它只是一个菜单项。
如果你想从前端做同样的事情,你可以使用以下方法:
JavaScript
var menuItems = {
'info': {
'label': 'Info',
'id': 'info-item'
},
'home': {
'label': 'Home',
'id': 'home-item'
}
};
//...
function getCurrentPage() {
var str = window.location.search.replace('?', ''),
params = str.split('&');
for (var i = 0; i < params.length; i += 1) {
var current = params[i].split('=');
if (current[0] === 'page') {
return current[1];
}
}
return undefined;
}
//...
var page = getCurrentPage();
clearCurrentPage();
setCurrentPage(page);
//...
function setCurrentPage(page) {
var item = pages[page];
document.getElementById(item.id).className += ' selected';
}
function clearCurrentPage() {
var selected = document.getElementsByClassName('selected');
for (var i = 0; i < selected.length; i += 1) {
selected[i].className = selected[i].className.replace(' selected', '');
}
}
关于javascript - 如何在导航菜单栏中显示用户所在的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15023252/
相关文章:
javascript - 使用 create-react-app 时如何获取 electro.js 文件的 typescript
javascript - 如何使用 mongoose 更新 MongoDB 中的数组?
javascript - 更新 forEach 数组时,AWS SDK S3 在 forEach 内调用
php - 根据 php session 属性更改 HTML 菜单栏?
html - 使用 flexbox 如何在 div 下居中文本
javascript - 如何使下拉列表选择更新网页上的图像?
javascript - 如何从 JSON 字符串中检索多个属性值