我正在学习PHP如何工作,但同时我必须重新设计自定义CMS。
CMS是用PHP编写的,我使用CSS重新设置了默认菜单并添加了侧滑效果。但是现在,当我点击菜单中的链接时,我需要打开这个侧面板。我认为,最简单的方法是阻止页面重新加载=在页面内容部分(<div id="content"></div>
)中打开菜单链接。但是因为在源代码中,有很多函数,变量等,我真的需要你的帮助,如何继续。
/Admin/index.php - 此处使用函数调用菜单部分(放置在单独的文件中)中的内容
AdminLib / CSS / style.css - 包含侧边菜单的样式
AdminLib / Include / menu.php - 这里定义了一个侧边菜单(ul,li)
/Admin/index.php
...
...
...
<body>
<?php if ($page != 'login') {
$menu_obj = new AdminMenu(dirname(__FILE__).'/Tabdefs/');
echo $menu_obj->GetHtml();
?>
<div class="site-wrap">
<?php
}
ContContent();
?>
</div>
...
...
...
AdminLib /包含/ menu.php
...
...
...
//vrati html pro svoje menu
public function GetHtml() {
$html = '<ul class="navigation">';
$html .= $this->GetHtmlRecursive($this->menu_def);
$html .= '</ul>';
$html .= '<input type="checkbox" id="nav-trigger" class="nav-trigger" /><label for="nav-trigger"></label>';
return $html;
}
/********** PRIVATE ***********/
//vrati html pro vsechny polozky menu v poli $arr; Pokud tam nejaka ma sub, tak se vola rekurzivne
private function GetHtmlRecursive($arr) {
$html = '';
foreach ($arr AS $item) {
//neukazovane polozky rovnou preskakuju
if ($item['show'] != 'Y')
continue;
//ted jestli mam podpolozky, tak rekurzujeme
if (isset($item['sub'])) {
$html .= '<li class="nav-item"><a href="#">'.$item['nazev'].'</a>'.
'<ul class="nav-item">';
$html .= $this->GetHtmlRecursive($item['sub']);
$html .= '</ul></li>';
}
else {
//pokud podpolozky nemam, tak vypisu normalni polozku
$html .= '<li class="nav-item"><a href="'.$item['url'].'">'.$item['nazev'].'</a></li>';
}
} //foreach pres polozky $arr
return $html;
}
...
...
...
我尝试整合这样的东西 - 使用jQuery脚本(How to target the href to div - JsFiddle上的第二和第三个链接)到我的源代码中,但我需要帮助实现 - 我无法使它工作。
答案 0 :(得分:1)
您可以始终使用锚标记,而不是获取指向特定div的链接。他们使用a标签转到页面上的相关点。
将创建一个锚标记,如下所示:
<a name="location1"></a>
要链接到包含a标签的标签,您可以执行以下操作:
<a href="#location1">Link Text</a>
该链接将带您进入页面上的锚点位置。
如果您真的想通过div ID来实现它并使用jQuery(这将使您能够滚动到它而不是直接跳转),那么如果您创建链接到以下内容:
<a href="#" onclick="scrollToLocation('location1')">Link Text</a>
如果页面有div:
<div id="location1">Contrent of the div</div>
并且您的页面具有该功能(在页面上或在外部文件中):
function scrollToLocation(location_id) {
$('body').animate({
scrollTop: $('#' + location_id).offset().top
}, 500);
}
以下问题中有关于Stack Overflow的更多信息: