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

10 réponses

1 2
Avatar
giminik
salut,
utilise dans ancres.
<div id="ancre1">...</div>
tu génères dans une boucle des ancres ayant toutes un nom différent.
ensuite il suffit d'appeler la page comme ceci page.html#ancre1 et la
page se positionnera à l'endroit où se trouve l'ancre.
a++
Avatar
Steuf
Bonjour à tous,


Bonjour

Si vous avez des suggestions , je suis preneur...


Je crois que la meilleurs des suggestions serait de laisser tomber ce
système de scrollbar, toujours très ennuyeux pour le visiteur, et d'une
utilisation qui reste à justifier car lorsqu'on y regarde bien, le
navigateur a une scrollbar donc l'interêt d'en mettre une dans un site
n'est, AMHA, pas vraiment à conseiller.

Pour moi cela revient à se poser la question :

" Pourquoi faire quelque chose qui est déjà fait et disponible ? "

Merci pour votre aide.


De rien


Kerroch



--
Site dédié au développement WEB : http://www.exinsidephp.com

Avatar
kerroch
"giminik" a écrit dans le message de news:

salut,
utilise dans ancres.
<div id="ancre1">...</div>
tu génères dans une boucle des ancres ayant toutes un nom différent.
ensuite il suffit d'appeler la page comme ceci page.html#ancre1 et la
page se positionnera à l'endroit où se trouve l'ancre.
a++



Bonjour , depuis que j'ai posté, j'ai effectivement essayé le système
d'ancre ou liens interne html.
et effectivement çà marche .

mais problème:
mon scrollbar est initialement positionné au centre de ma page et avec les
ancres
lorsque je clique sur une ligne de mon scrollbar , tout mon scrollbarr
remonte en haut
de ma page .
Ce qui est logique puisque le but des ancres est de positionner la page à
l'endroit de l'ancre.

ce que je cherche est de n'agir que sur le scrollbar et non pas sur la
page

le système d'ancre n'est peut être pas approprié....

je creuse encore....

Avatar
kerroch
Bonjour,

je ne suis pas vraiment de cet avis .
en effet , si je veux visualiser 300 lignes et garder toujours en vue sur
une même page un menu ,des informations, en paralleles avec les 300
lignes,je ne trouverai pas tres pratique de devoir en tant que visiteur
faire des allers retour du haut de page et revenir en ligne 200 etc....
je pense qu'il y a deux choses différentes avec des buts différent s

1) la navigation de la page
2) la navigation au sein d'un élément distinct (ici scrollbar) de la page.

sans compter le côté esthétique .....
merci
kerroch
Avatar
Francois Girault
Bonjour,

je ne suis pas vraiment de cet avis .
en effet , si je veux visualiser 300 lignes et garder toujours en vue sur
une même page un menu ,des informations, en paralleles avec les 300
lignes,je ne trouverai pas tres pratique de devoir en tant que visiteur
faire des allers retour du haut de page et revenir en ligne 200 etc....
je pense qu'il y a deux choses différentes avec des buts différent s

1) la navigation de la page
2) la navigation au sein d'un élément distinct (ici scrollbar) de la page.

sans compter le côté esthétique .....


Et le position: fixed en css c'est fait pour qui ?-)

http://www.w3.org/Style/Examples/007/menus.html

et tes menus seront toujours visibles !

Avec des ancres (tag <a>) nommées, l'appel à page.php#ancre te mettra
sur la bonne entrée ! c'est le seul moyen cohérent de 'distinguer' les
éléments. Une page, c'est une page ... sinon une iframe appelée avec un
nom d'ancre, bref une page dans une page :)

FG

Avatar
giminik

Et le position: fixed en css c'est fait pour qui ?-)
Par pour IE en tout cas :-D


Avatar
Steuf


Et le position: fixed en css c'est fait pour qui ?-)


Par pour IE en tout cas :-D


Oui mais Internet Explorer ne comprend rien à rien aux standart
(X)HTML/CSS ;-).

--
Site dédié au développement WEB : http://www.exinsidephp.com


Avatar
Francois Girault
Par pour IE en tout cas :-D


il y a des hacks pour IE6 et même IE5.

les astuces ne manquent pas et notre ami google ne manque pas de
références à ce sujet :

http://www.google.fr/search?q=css+fixed+position+ie6

Pour les dev web de maintenant, aujourd'hui en 2005, la démarche est
plutôt de développer suivant les standards du w3c, tester sur un
navigateur suffisament conforme et ensuite trouver les astuces et
contournements divers pour que ça passe sous IE, puisque de toute façon
la prochaine version d'IE sera moins pire que l'actuelle. la guerre des
navigateurs n'est pas finie, mais la stratégie la plus pérène reste la
voie de l'adoption des standards, ceux-ci ne sont pas là que pour nous
embêter :)

Donc si, si, css est la solution la plus simple à votre problème :-D

FG

Avatar
kerroch
Bonjour à tous ,

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...
Malgré que ce soit toujours intéressant d'expérimenter de nouveaux
horizons....
quelque fois on manque de discernement...ou de recul par rapport au sujet
pourquoi faire simple quand on peut faire compliqué.
C'est en faisant des erreurs qu'on avance ....

Si l'on veut programmer des applications portables et surtout maintenables,
il me parait judicieux de s'adapter à des règles ou "standarts" établis pour
tous .
Eliminons les querelles de chapelles (IE ou firefox ou nescape...etc) et
marchons tous
dans la même direction......
(je rêve? je sais c'est pas pour demain , faire de l'argent étant le nerf de
la guerre...)


merci de votre réponse..
kerroch.
Avatar
Etienne SOBOLE
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.

ca marche plusot bien.
Etienne
1 2