SMART SCROLL php + javascript

g L
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 21:41

Bonjour,

Je cherche à conserver la position de la scrollbar vertical dans une page qui serait rafraichie et qui devrait être repositionnée à la meme place que avant le rafraichissement.
J'ai trouvé une proposition qui marche très bien avec des "hidden" dans un formulaire:
<HTML>
<HEAD>
<TITLE>Test</TITLE>
<script>
  function SaveScrollXY() {
    document.Form1.ScrollX.value = document.body.scrollLeft;
    document.Form1.ScrollY.value = document.body.scrollTop;
  }
  function ResetScrollPosition() {
    var hidx, hidy;
    hidx = document.Form1.ScrollX;
    hidy = document.Form1.ScrollY;
    if (typeof hidx != 'undefined' && typeof hidy != 'undefined') {
      window.scrollTo(hidx.value, hidy.value);
    }
  }
</script>
</HEAD>
<BODY onload="ResetScrollPosition()">
  <form name="Form1" id="Form1" method="post" onsubmit="SaveScrollXY()" action="test4.php">
    <input name="ScrollX" id="ScrollX" type="hidden" value="<?php echo $_REQUEST['ScrollX'] ?>" />
    <input name="ScrollY" id="ScrollY" type="hidden" value="<?php echo $_REQUEST['ScrollY'] ?>" />
    <p>This is just a paragraph to make a very long page.</p>
    …
    <P>
      <input name="TextBox1" type="text" value="<?php $v = $_REQUEST['TextBox1']; echo $v ? $v + 1 : 1 ?>" readonly="readonly" id="TextBox1" /></P>
    <P>
      <input type="submit" name="Button1" value="Post Form" id="Button1" /></P>
  </form>
</BODY>
</HTML>

Mais mon problème est que je ne veux pas de formulaire et j'aimerais avoir la meme fonctionnalité avec un simple link "href".
Sans formulaire je suis confronté au problème de la récupération de la variable. J'ai pensé à une solution via cookie, mais c'est un peu laborieux pour une simple (je crois) chose.

Si quelqu'un a une solution ou un piste, il sera le bienvenu.

Merci d'avance

Gael

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 janv. 2006, 22:34

Salut, peut etre avec des ancres

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

g L
Invité n'ayant pas de compte PHPfrance

13 janv. 2006, 00:09

Oui les ancres c'est bien. Mais je voulais passer par javascript car avec safari j'ai rencontré des bugs complètement bizarres avec les ancres.(Du style ma page n'est pas replacée pas correctement ou au mieux elle n'est pas replacée du tout). Par contre avec les mêmes script sur FF ou IE, aucun problème, MAC ET PC.