Question

Après avoir soumis un formulaire la position retournera en haut de la fenêtre. Au lieu d'aller à la position précédente.

Vous cherchez à utiliser scrollTop pour rememeber positon ou avez-vous une meilleure idée?

J'utilise des trucs comme PHP5, MySQL et jQuery.

Était-ce utile?

La solution 2

Check this out:

<script type="text/javascript" src="der/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="der/jquery.cookie.js"></script>
<script type="text/javascript">
function get_position(){
    var top_position = document.documentElement.scrollTop;
    $.cookie('pos', top_position);
};
function set_position(){
    var top_position = $.cookie('pos');
    window.scrollTo(0,top_position)
    $.cookie('pos', null);
};  
</script>
</head>
<body onload="set_position();">
.
.
.
<form method="post" action="" onsubmit="return get_position();">
</form>

Autres conseils

Tout d'abord créer un point d'ancrage dans la page où vous voulez que le visiteur d'obtenir quand ils soumettent la forme.

Ensuite, dans votre action de formulaire ou rediriger le point de déposer avec l'ancre

par exemple.

 <div id="view_from_here" >.....

puis

 <form action="myfile.php#view_from_here" ....

Si vous vous soumettez le formulaire via Ajax, il ne changera rien (peut-être c'est une option, si vous redirigez à la même page de toute façon). Vous pouvez également enregistrer la position dans un cookie via JavaScript avant de soumettre et de récupérer et définir la valeur lorsque la nouvelle page est chargée (par exemple avec jQuery scrollTo). Ou vous venez de définir un point d'ancrage sur votre champ de formulaire (ce qui est très susceptible d'être la dernière position l'utilisateur fait défiler) et revenir en arrière à la forme après soumettre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top