|
|
|
| Уже второй день пытаюсь сделать так, чтобы броузер оставался на том месте меню, где оно было открыто, а не поднимался, но всё тщетно.
Пробовал получать положение скролла, но вот такой код всё время показывает 0:
if (isset($_GET['scr'])) {
echo "Scroll: ". $_GET['scr'] ."<br />";
}
else
{
echo "<script language='javascript'>";
if (document.body.scrollTop)
var a;
a=document.body.scrollTop;";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&scr=\" + a;\n";
echo "</script>";
exit();
}
|
Помогите, пожалуйста | |
|
|
|
|
|
|
|
для: smalik
(01.07.2005 в 11:27)
| | Меню вертикальное?
А что происходит по нажатию на ссылку меню? Загружается новая страница? И вы хотите сохранить положение вертикальной прокрутки.
Попробуйте вот такой вариант.
Для чистоты эксперимента создаем файл index.php, внутрь которого подключается меню.
<?
include "menu.php";
?>
|
А вот и сам menu.php
<html>
<head>
<script language="JavaScript">
var top = <?= $_GET["top"] ?>;
function myhref() {
var top = document.body.scrollTop;
window.document.location.href="page.php?top="+top;
}
function myscroll(top) {
document.body.scrollTop=top;
}
</script>
<head>
<body onload="myscroll(top)">
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<a href="#" onclick="myhref(); return false;">Первый пункт меню</a>
<br><br><br><br><br><br><br><br><br>
<a href="#" onclick="myhref(); return false;">Второй пункт меню</a>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<a href="#" onclick="myhref(); return false;">Третий пункт меню</a>
|
Ссылки формируется в тот момент когда на них нажал посетитель (событие onclick). К ссылками прибавляется значение текущей вертикальной прокрутки (параметр top).
При загрузки новой страницы с помощью этого параметра формируется переменная JavaScript top, с помощью которой страница прокручивается на необходимую величину. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(02.07.2005 в 08:41)
| | У меня всё подключается в один файл (include)
<body>
<? $id=$_GET["id"];
?>
<div id=page>
<div id=page1>
<div id=header>
<? include("head/header.php");?>
</div>
<div id=right1>
</div>
</div>
<div id=page2>
<div id=menu>
<? include("top_menu/menu.php")?>
</div>
<div id=right2>
</div>
</div>
<div id=page3>
<?
if (!isset($id))
{?>
<div id=main>
<? include("main/main.php")?>
</div>
<div id=novosti>
<? include("news/news.phtml")?>
</div>
<?}
elseif ($id==9)
{?>
<div id=prise >
<? include("con_db.phtml")?>
</div>
<?}
elseif ($id>9 or $id==0)
{?>
<div id=prise>
<? include("con_db.phtml")?>
</div>
<?
}
?>
<div id=katalog>
<table align="left" border="0" cellpadding="0" cellspacing="0" height=100%>
<tr align=left><td valign=top>КАТАЛОГ<? include("cat/cat.php")?></td></tr>
</table>
</div>
</div>
</div>
</body>
|
А меню генерируется также php кодом.
А код который вы дали не работает.
Вот что пишет (если спотреть в html):
<script language="JavaScript" type="text/JavaScript">
<!--
var top = <!--error--><br />
<b>Notice</b>: Undefined index: top in <b>x:\home\test2.ru\www\menu.php</b> on line <b>5</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>
function myhref() {
var top = document.body.scrollTop;
window.document.location.href="tp.php?top="+top;
}
function myscroll(top) {
document.body.scrollTop=top;
}
//-->
</script> | |
|
|
|
|
|
|
|
для: SMAlik
(04.07.2005 в 07:11)
| | >А код который вы дали не работает.
В php.ini для директивы error_reporting установите значение:
error_reporting = E_ALL & ~E_NOTICE
|
Иначе намучаетесь со скриптами. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(04.07.2005 в 10:07)
| | Ничего не работает.
В строке статуса ошибка:
Строка 21
Символ 1
Ошибка предпологается наличие объекта
код 0 | |
|
|
|