PHP 中的 CMS - 如何将 href 定位到 <div>?
CMS in PHP - How to target href to <div>?
我正在学习 PHP 的工作原理,但同时我必须重新设计自定义 CMS。
CMS 是用 PHP 编写的,我用 CSS 重新设计了默认菜单并添加了侧滑效果。但是现在,当我从菜单中单击 link 时,我需要保持此侧面板打开。我认为,最简单的方法是防止页面重新加载 = 使菜单 link 在页面内容部分 (<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/Include/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 上的第 2 和第 3 link),但我需要帮助实现 -我无法让它工作。
您始终可以使用定位标签,而不是让 link 定位到特定的 div。他们使用 a 标签转到页面上的相关点。
锚标签的创建方式如下:
<a name="location1"></a>
要 link 到带有您的 a 标签的那个,您可以这样做:
<a href="#location1">Link Text</a>
然后 link 会将您带到页面上的锚点位置。
如果您真的想通过 div ID 并使用 jQuery(这将使您能够滚动到它而不是直接跳转),那么如果您创建 link 类似于以下内容:
<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 的信息:
- jQuery .scrollTop(); + animation
- jQuery jump or scroll to certain position, div or target on the page from button onclick
我正在学习 PHP 的工作原理,但同时我必须重新设计自定义 CMS。
CMS 是用 PHP 编写的,我用 CSS 重新设计了默认菜单并添加了侧滑效果。但是现在,当我从菜单中单击 link 时,我需要保持此侧面板打开。我认为,最简单的方法是防止页面重新加载 = 使菜单 link 在页面内容部分 (<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/Include/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 上的第 2 和第 3 link),但我需要帮助实现 -我无法让它工作。
您始终可以使用定位标签,而不是让 link 定位到特定的 div。他们使用 a 标签转到页面上的相关点。
锚标签的创建方式如下:
<a name="location1"></a>
要 link 到带有您的 a 标签的那个,您可以这样做:
<a href="#location1">Link Text</a>
然后 link 会将您带到页面上的锚点位置。
如果您真的想通过 div ID 并使用 jQuery(这将使您能够滚动到它而不是直接跳转),那么如果您创建 link 类似于以下内容:
<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 的信息:
- jQuery .scrollTop(); + animation
- jQuery jump or scroll to certain position, div or target on the page from button onclick