Memoriser la position d'une barre de defilement ?

Memoriser la position d'une barre de defilement ? - PHP - Programmation

Marsh Posté le 26-09-2005 à 14:00:29    

Bonjour, j'ai un petit probleme sur mon site (en construction : http://stephane-l.club.fr/korxx22 )
 
lorsque l'on parcourt les images a gauche et que l'on fait defiler vers le bas et que l'on clique sur une photo, on recharge la page ce qui a pour effet de reinitialiser la barre de defilement...
Ce qui est plutot genant car on ne sais pas ou on en etait etc...
 
J'ai pensé a mettre en variable la position de la barre de defilement mais je ne sais pas si c'est possible...
 
Sinon si vous avez d'autres idées je suis preneur ;)


Message édité par korxx le 27-09-2005 à 11:01:18
Reply

Marsh Posté le 26-09-2005 à 14:00:29   

Reply

Marsh Posté le 26-09-2005 à 14:07:41    

ne pas recharger la page [:spamafote]
 
Tu peux faire ça avec du javascript qui réagit au click sur la miniature et charge l'image dynamiquement.


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 26-09-2005 à 14:15:28    

Moi ce que j'ai fait dans mon supaÿr système, c'est mettre un id sur chaque image, genre :

<a href="galerie.php?image=pouet"><img src="pouet.jpg" alt="Un joli pouet id="pouet"></a>


Et pis dans la page où j'affiche l'image, y'a un lien retour de la forme :

<a href="liste.php#pouet">Retour</a>


Du coup ça revient en arrière, et grâce au combot id + #pouet, ça scroll tout seul à l'image...
 
Maintenant faudrait adapter ça à ton site...

Reply

Marsh Posté le 26-09-2005 à 14:44:28    

Moi je te propose de mettre une fonction comme ça dans ton entete de page:
 


<script type="text/javascript">
function loadImage(url)
{
   document.getElementById('cadrecentre').src=url;
}
</script>


 
de mettre l'id sur ton image taille reelle
 


<img src="premiere_image.jpg" alt="taille réelle" id="cadrecentre" />


 
et de faire des liens comme ça sur tes miniatures
 


<a onclick="loadImage('image1.jpg" )"><img alt="thumb1" src="image1th.jpg" /></a>


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 26-09-2005 à 15:10:52    

Moi je propose ça :
 
Tu met un id sur chaque image, et tu rajoute le fragment identifier qui va bien dans l'url :
 

<a href="http://stephane-l.club.fr/korxx/index.php?imglg=0204.jpg#0204"><img id="0204" src="/thumbs/0204.jpg" alt="pouet" /></a>


Et le tour est joué.
 
Boulaxx, ta solution est pas accessible :o

Reply

Marsh Posté le 26-09-2005 à 15:12:56    

FlorentG a écrit :

Moi ce que j'ai fait dans mon supaÿr système, c'est mettre un id sur chaque image, genre :

Citation :

<a href="galerie.php?image=pouet"><img src="pouet.jpg" alt="Un joli pouet" id="pouet"></a>


Et pis dans la page où j'affiche l'image, y'a un lien retour de la forme :

<a href="liste.php#pouet">Retour</a>


Du coup ça revient en arrière, et grâce au combot id + #pouet, ça scroll tout seul à l'image...
 
Maintenant faudrait adapter ça à ton site...


 
Ca se fait pas de donner des codes buggés   [:adodonicoco]

Message cité 1 fois
Message édité par esox_ch le 26-09-2005 à 15:13:53

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 26-09-2005 à 15:15:29    

FlorentG a écrit :

Boulaxx, ta solution est pas accessible :o


Boulet :o


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 26-09-2005 à 15:19:45    

esox_ch a écrit :

Ca se fait pas de donner des codes buggés   [:adodonicoco]


Ca marche très bien :o Regarde sur cette page. Prend une image, clique, et fait "Retour" [:dawa]
 


Boulax :o

Reply

Marsh Posté le 26-09-2005 à 15:21:47    

FlorentG a écrit :

Ca marche très bien :o [:dawa]


le prend pas mal, il te manquait un tout petit, minuscule, ridicule guillemet ;)

Reply

Marsh Posté le 26-09-2005 à 15:28:41    

Ah :D Fatigue, Lundi matin, sortie de table toussa

Reply

Marsh Posté le 26-09-2005 à 15:28:41   

Reply

Marsh Posté le 26-09-2005 à 16:07:28    

Merci beaucoup pour toutes vos réponses, par contre je comprends pas trop j'ai un unexpected T_STRING, je vois pas d'ou ca vient...
 
 

Code :
  1. <a href="index.php?imglg=$fichier"><img border=0 src=/"$tmp/" alt="un joli pouet" id="pouet"></a>

Reply

Marsh Posté le 26-09-2005 à 16:23:23    

Oula oula
 

echo '<a href="index.php?imglg=', $fichier, '"><img border="0" src="', $tmp, '" alt="un joli pouet" id="', $id, '"></a>';

Reply

Marsh Posté le 26-09-2005 à 16:47:27    

Je crois que l'accessibilité, à ce niveau là, on s'en tamponne un peu les steacks [:kiki]

Reply

Marsh Posté le 26-09-2005 à 18:31:04    

FlorentG a écrit :

Oula oula
 

echo '<a href="index.php?imglg=', $fichier, '"><img border="0" src="', $tmp, '" alt="un joli pouet" id="', $id, '"></a>';



 
 
Donc a chaque fois que j'utilise une variable je la met entre virgules et guillemet simple c'est ca ?
Je ne savais pas, merci pour cette précision, je vais corrigé tout mon code en intégrant cela :)
par contre ils sont necessaires les espaces que tu as mis ?


Message édité par korxx le 26-09-2005 à 18:33:15
Reply

Marsh Posté le 26-09-2005 à 18:37:39    

C'est juste la syntaxe la plus optimisée pour afficher un truc direct :)
 
Pour les espace, c'est question de typo + lisibilité

Reply

Marsh Posté le 26-09-2005 à 18:58:05    

FlorentG a écrit :

C'est juste la syntaxe la plus optimisée pour afficher un truc direct :)
 
Pour les espace, c'est question de typo + lisibilité


 
Ok ben merci d'avoir partager ca avec moi ;)
tant qu'a faire autant avoir un code correct  :jap:  
 
 
En tout cas meme avec ta syntaxe j'ai la meme erreur, je m'y pencherai plus tard parce que la je vois pas du tout :(


Message édité par korxx le 26-09-2005 à 18:58:40
Reply

Marsh Posté le 26-09-2005 à 19:15:57    

C'est le php qui avait du mal a prendre le " en compte il a fallu que je rajoute des \ avant chaque "
Now ca marche :)
 
 
merci bcp FlorentG :) (par contre ta syntaxe entre virgule marchait pas)

Reply

Marsh Posté le 26-09-2005 à 19:27:50    

Si elle marche, t'as dû foirer un truc :(

Reply

Marsh Posté le 26-09-2005 à 20:21:17    

FlorentG a écrit :

Si elle marche, t'as dû foirer un truc :(


 
 
C'est dans du php c'est peut etre pour ca ?
 
Sinon comme ca ca marche :
 

Code :
  1. <a href=\"index.php?imglg=$fichier#$id\"><img border=\"0\" src=\"$tmp\" alt=\"un joli pouet\" id=\"$id\"></a>


 
 
et comme ca ca marche pas :  
 

Code :
  1. <a href=\"index.php?imglg=',$fichier,'#$id\"><img border=\"0\" src=\"',$tmp,'\" alt=\"un joli pouet\" id=\"',$id,'\"></a>


 
 
avec le code qui marche pas les liens deviennent comme ca :
 
http://stephane-l.club.fr/korxx/in [...] jpg,'#0463
 
 
 
Sinon j'ai fait comme tu me la conseillé pour mettre un id sur chaque image et ca fonctionne :)
C'est deja mieux, on s'y perds moins a chaque fois que ca charge  :jap:


Message édité par korxx le 26-09-2005 à 20:23:53
Reply

Marsh Posté le 26-09-2005 à 20:30:51    

à mon avis tu as dû mélanger deux trucs ...
voilà 3 équivalents

Code :
  1. $variable = 'variable';
  2. // un
  3. echo 'text ', $variable, ' text "guillemets" text';
  4. // deux
  5. echo "text $variable \\"guillemets\\" text";
  6. // trois
  7. $string = 'text '.$variable.' "guillemets" text';
  8. echo $string;


Note : les virgules ne sont utilisables qu'avec echo ...

Message cité 1 fois
Message édité par shakpana le 26-09-2005 à 20:31:10
Reply

Marsh Posté le 26-09-2005 à 20:41:22    

shakpana a écrit :

à mon avis tu as dû mélanger deux trucs ...
voilà 3 équivalents

Code :
  1. $variable = 'variable';
  2. // un
  3. echo 'text ', $variable, ' text "guillemets" text';
  4. // deux
  5. echo "text $variable \\"guillemets\\" text";
  6. // trois
  7. $string = 'text '.$variable.' "guillemets" text';
  8. echo $string;


Note : les virgules ne sont utilisables qu'avec echo ...


 
ok, je n'avais effectivement pas utilisé echo pour le presenter, je fais confiance à FlorentG quand au fait qu'il vaut mieux d'un point de vu accessibilité le présenter ainsi.  
 
Merci à toi  :jap:  
 
Et désolé de vous faire corriger mon code, j'apprends, et vu qu'il y a plusieurs facon de faire, on tombe pas forcement sur la mieux du premier coup :)
 
Sinon j'ai lu que l'erreur que j'avais était du a un mauvais traitement des guillemets par php et que dans ce cas on pouvait mettre \" a la place, ce que j'ai fait et ca marche, mais encore une fois j'ignore si c'est la meilleure methode ;)

Reply

Marsh Posté le 26-09-2005 à 20:55:49    

>  j'ignore si c'est la meilleure methode
boharf, c'est un débat de "Bests practises" car en fait que tu fasses
"\"\"" ou '""' ou '"'."\"" ça revient au final au même, mais c'est plus ou moins bien lisible, certains n'aiment pas les "texte et $var" car ils prétendent que c'est difficile à débugger, noyage des variables dans le texte, généralement les éditeurs à coloration de syntaxe n'afficheront pas la $var en couleur, donc plus difficile à lire ...
moralité : fait comme bon te semble et comme il est pratique de faire pour toi enfin en connaissance de cause quand même ...
mais une qd une bonne habitude est prise ... après tu peux diffuser un code, que chacun sera heureux de lire ;)


Message édité par shakpana le 26-09-2005 à 20:57:50
Reply

Marsh Posté le 26-09-2005 à 22:29:53    

Ma version est plus optimisée : pas de recherche de variables dans les chaînes de caractère, et utilisation de la virgule, afin d'éviter une concaténation de chaînes inutile :)

Reply

Marsh Posté le 26-09-2005 à 22:58:51    

> Ma version est plus optimisée
ce n'était pas vraiment mon propos, ya pas de différence de perf. entre "\"" et '"' mais entre "test $var" et "test ".$var, oui, la dif. est significative (enfin à grande échelle)
 
> et utilisation de la virgule
mais comme en fait il n'y avait pas de echo, la virgule :D


Message édité par shakpana le 26-09-2005 à 23:00:14
Reply

Marsh Posté le 27-09-2005 à 05:44:19    

FlorentG a écrit :

Ma version est plus optimisée : pas de recherche de variables dans les chaînes de caractère, et utilisation de la virgule, afin d'éviter une concaténation de chaînes inutile :)


Cool une question que je me suis souvent posée tiens, merci de cette info :)
 
mais ce que je comprends pas :

Code :
  1. echo '<a href="index.php?imglg=', $fichier, '"><img border="0" src="', $tmp, '" alt="un joli pouet" id="', $id, '"></a>';


la il va rechercher des variables dans toute la partie  : "index.php?imglg=', $fichier, '" pour le début.
Ne serait-ce pas mieux :

Code :
  1. echo '<a href=\'index.php?imglg=\' '.$fichier.'\' >'


Comme ca php ne fait aucune recherche de variable (euh nerf le post me vire mes antislash, mais tu vois où je veux les mettre quoi, dans le but de pas utiliser de guillemets doubles " )
 
La concaténation est moins optimisée que la recherche de variable ?


Message édité par Djebel1 le 27-09-2005 à 05:46:23
Reply

Marsh Posté le 27-09-2005 à 05:45:36    

arf gourré entre répondre et éditer :x


Message édité par Djebel1 le 27-09-2005 à 05:46:06
Reply

Marsh Posté le 27-09-2005 à 08:18:10    

Nan pas de point.
 
Quand tu fais ça :

echo 'a', 'b', $truc, 'c', $machin;


C'est équivalent à ça :

echo 'a';
echo 'b';
echo $truc;
echo 'c';
echo $machin;


Donc t'affiche tout à la suite comme ça, sans te poser de question, et avec une syntaxe légère (pas besoin d'un echo par ligne, suffit de séparer les truc par des virgules).
 
Par contre avec les points :

echo 'a' . 'b' . $truc . 'c' . $machin;


Là c'est équivalent à :

$tmp = 'a' . 'b' . $truc . 'c' . $machin;
echo $tmp;


Donc là, y'a une concaténation de chaîne. On fout chaque élément à la suite des autres, qu'on met dans une variable, qui va être affichée... Question : à quoi ça sert de se taper une concaténation, si c'est pour afficher le truc tout bêtement ? Si en plus t'as des chaînes énormes à afficher, et que t'es chaud niveau mémoire, vaut mieux afficher direct que faire une concaténation intermédiaire...
 
Pour l'HTML enfin, ça permet d'utiliser des double-quotes sans avoir à faire un escape :

echo '<pouet truc="machin">', $pouet, '</pouet>';


(note qu'on utilise plutot les " pour les attributs, un peu moins souvent les ', même si c'est pas obligatoire)

Message cité 1 fois
Message édité par FlorentG le 27-09-2005 à 08:18:47
Reply

Marsh Posté le 27-09-2005 à 11:34:10    

Voilà un ptit bench, sur un vieux 700Mhz, soyez indulgent :)

Code :
  1. // rien faire 100 000 fois
  2. => 0.122436
  3. // affecter 2 chars à une variable 100 000 fois
  4. $str = 'ab';
  5. => 0.218546
  6. // rajouter 2 chars à une variable 100 000 fois
  7. $str .= 'ab';
  8. => 0.233232
  9. // rajouter 1 char et une var de 1 char à une var 100 000 fois
  10. $str .= 'a'.$b;
  11. => 0.333514
  12. // rajouter 1 char et une var de 1 char entre guillemet à une var 100 000 fois
  13. $str .= "a$b";
  14. => 0.414977


je crois que la solution de la ligne 2 est encore la mieux :D

Reply

Marsh Posté le 27-09-2005 à 13:25:31    

Fait le test plusieurs fois, aprés, tu pouras voir. Par ce que là, il suffit qu'un autre programme ai bossé au milieu du test pour fausser le temps.

Reply

Marsh Posté le 27-09-2005 à 13:26:40    

Faut les faire quand ton ordio est en mode sans echecs je dis .. Ou mieux sous un unix ou presque tout les demons sont arretés


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 13:55:30    

?!  :heink:  
c'est déjà ce qu'on appelle des moyennes sur une 10aine de bench, sur une bécane dédiée ...
 
edit: ha oui et j'avais fermé les fenêtres pour éviter les courants d'air :D


Message édité par shakpana le 27-09-2005 à 14:00:01
Reply

Marsh Posté le 27-09-2005 à 14:16:00    

Les benchs ont l'air juste :jap: c'est ce qu'on observe d'habitude...

Reply

Marsh Posté le 27-09-2005 à 14:21:45    

me serait bien lancé dans le portage du bench sur d'autres bécanes, dans des calculs d'ecart moyen et yadayada, mais c'est moi qui vait perdre des cycles de processeur  :)  

Reply

Marsh Posté le 27-09-2005 à 14:31:56    

et entre ca:

Code :
  1. echo '<pouet truc="machin">', $pouet, '</pouet>';


en ca:

Code :
  1. <pouet truc="machin"><?php echo $pouet ?></pouet>


y'a une grosse différence ?


---------------
D3
Reply

Marsh Posté le 27-09-2005 à 14:32:36    

Le deuxième est plus rapide :jap:

Reply

Marsh Posté le 27-09-2005 à 14:34:32    

Code :
  1. <pouet truc="machin"><?=$pouet;?></pouet>


 :jap:


Message édité par esox_ch le 27-09-2005 à 14:34:52

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 14:35:53    

Ce dernier ne fonctionne pas partout ;) Vaut mieux utiliser tout le temps <?php ?> pour être portable à 100%

Reply

Marsh Posté le 27-09-2005 à 14:38:52    

A oui , pour les tag abbrégés ... donc

Code :
  1. <pouet truc="machin"><?php=$pouet;php?></pouet>


:jap:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 14:40:22    

Nan, ça marche pas ça :D Faut mettre un echo obligatoirement...

Reply

Marsh Posté le 27-09-2005 à 14:51:42    

Roh font chier a la fin :p Bon si c'est comme ca je vais manger un ptit pot et je vais bouder dans mon coin


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed