Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Memoriser position curseur d'un scrollbar

15 réponses
Avatar
kerroch
Bonjour à tous,

Je bloque depuis quelques temps sur le problème suivant:
( langages concernés , php,javascript ,css)

pour afficher des données venant d'une base de donnée mysql ,
j'utilise un fichier CSS dans lequel je définis la mise en forme SCROLLBAR.
(Pas de problème).

Mon problème consiste à garder en mémoire la position du curseur de la
scrollbar .
Ainsi lorsque je clique sur une ligne du scrollbar , après rafraichissement
de ma page,
je voudrais que le curseur du scrollbar soit positionné sur la ligne
précédemment cliquée.
Sinon la scrollbar se repositionne sur la première ligne
et il faut refaire défiler toutes les lignes pour cliquer sur la
suivante....

j'espère être assez clair

voici pour l'instant je que j'ai fait:

[ script PHP]

$i=0;
echo ("<div id=scrolldiv class=scrollbar ">);
while ( y a des lignes venant de la base de donnée)
$i++;

echo ("<a href=$_SERVER[PHP_SELF]?curseur=$i id=$i
onclick='$curseur=$i;setscroll($curseur)'>".[affichageligne.]."</a><br>");
}
echo ("</div>");

[ script JAVASCRIPT
<script language="javascript">
function setscroll($curseur)
{
var mydiv = document.getElementById("scrolldiv");
var scrollpos =$curseur;
mydiv.scrollTop = scrollpos;
}
</script>

1) peut -être que le principe que j'utilise n'est pas le bon ?
2) lorsque j'exécute le curseur du scrollbar se place bien à la ligne
défini par $curseur
mais revient aussitôt sur la premiere ligne.

Si vous avez des suggestions , je suis preneur...
Merci pour votre aide.

Kerroch

5 réponses

1 2
Avatar
kerroch
la solution réside dans les cookies.
dans le onscroll tu ecrit la position de ton scroll dans un cookie.
puis au recharchement de ta page (dans le onload) tu réinitialises
l'acsenceur.


Bonjour , j'ai expérimenté un certains nombres de choses mais aucune de
satisfaisantes.

HTML
les ancres: le scrollbar marche très bien mais la page se déplace
verticalement pour situer l'ancre en haut de page et j'ai pas trouvé de
remède efficace.(scroll(),scrollby() ,screenX etc....)

JAVASCRIPT:
document.getElementById("scrolldiv").scrollTop = ("<? echo
($_GET['curseur'])?>").
ça , mais il n'y a pas cohérence entre la valeur du
déplacement du curseur et la valeur du curseur.
( ex si 10 lignes dans le scrollbar , je clique sur la deuxieme ligne et le
curseur ne se déplace que de quelques pixels vers le bas...)

Réflexion faite je crois qu"en cherchant à manipuler des scrollbars pour en
faire plus que d'afficher du texte ...je cherche à me faire plus de noeuds
dans le cerveau que nécessaire...

j'ai réalisé mon affichage en gérant une variable en php , tres simple et
efficace .

merci pour ton idée de cookie , j'essaierai de la tester mais je reste
sceptique sur le résultat
...si tu dis que ça marche... je vais voir.
.
Merci

Kerroch

Avatar
Etienne SOBOLE
merci pour ton idée de cookie , j'essaierai de la tester mais je reste
sceptique sur le résultat
...si tu dis que ça marche... je vais voir.


ben c'est logique.
d'un coté tu enregistre la position du curseur
et de l'autre tu la recharge lors d'un nouvelle page.

L'idéeal serait de faire un truc qui parcourt le dom et qui repère tous les
scroll et qui les enregistre dans des cookie portant le nom de l'objet,
comme ca hop, plus rien a affaire.
un appel dans le le onunload un autre dans le onload et c'est transparent...
mais ca risque d'etre assez lent ;(


Etienne

Avatar
kerroch
L'idéeal serait de faire un truc qui parcourt le dom et qui repère tous
les scroll et qui les enregistre dans des cookie portant le nom de
l'objet, comme ca hop, plus rien a affaire.
Etienne


Je te remercie pour l'idée, dès que j'aurai un peu de temps , je vais
essayer,
même si je me suis débrouillé totalement en PHP, je suis toujours intéressé
pour expérimenter d'autres outils..;
je vous tiendrai au courant des résultats.( bien que je pense que gérer les
scrolls risque d'êre un peu lourd...mais le principe est à essayer.)
merci
kerroch

Avatar
Jerome
Pour les dev web de maintenant, aujourd'hui en 2005, la démarche est
plutôt de développer suivant les standards du w3


... et appeler la librairie javascript IE7 pour les récalcitrants
utilisant IE5+

http://dean.edwards.name/IE7/

Avatar
kerroch
Bonjour à tous,

J'ai réussi à faire fonctionner le scrollbar en enregistrant la valeur du
curseur dans un cookie et en le récupérant dans le windows.onload.
ça marche impeccable
merci à tous .

Kerroch
1 2