Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Scroll
 
 автор: smalik   (01.07.2005 в 11:27)   письмо автору
 
 

Уже второй день пытаюсь сделать так, чтобы броузер оставался на том месте меню, где оно было открыто, а не поднимался, но всё тщетно.
Пробовал получать положение скролла, но вот такой код всё время показывает 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();
}


Помогите, пожалуйста

   
 
 автор: glsv (Дизайнер)   (02.07.2005 в 08:41)   письмо автору
 
   для: 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, с помощью которой страница прокручивается на необходимую величину.

   
 
 автор: SMAlik   (04.07.2005 в 07:11)   письмо автору
 
   для: 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>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>

   
 
 автор: glsv (Дизайнер)   (04.07.2005 в 10:07)   письмо автору
 
   для: SMAlik   (04.07.2005 в 07:11)
 

>А код который вы дали не работает.

В php.ini для директивы error_reporting установите значение:

error_reporting  = E_ALL & ~E_NOTICE

Иначе намучаетесь со скриптами.

   
 
 автор: SMAlik   (05.07.2005 в 07:32)   письмо автору
 
   для: glsv (Дизайнер)   (04.07.2005 в 10:07)
 

Ничего не работает.

В строке статуса ошибка:
Строка 21
Символ 1
Ошибка предпологается наличие объекта
код 0

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования