Scroll barre qui remonte lorsqu'on ajoute du texte dans un textarea

Résolu
demicervo Messages postés 17 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 juin 2010 - 23 févr. 2009 à 17:12
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 27 févr. 2009 à 16:09
Bonjour à tous,

j'espère que vous allez pouvoir m'aider.
J'ai bien cherché mais je n'ai pas trouvé de solution satisfaisante.
J'ai donc un textarea avec une scroll barre verticale (le texte pouvait être long).
L'utilisateur rempli le textarea en cliquant sur des boutons (un bouton écrit un texte prédéfini dans le textarea)
Or lors de ce clique, la barre remonte systématiquement. Je souhaiterais cependant qu'elle reste en position.

De quelle façon puis-je procéder ?

Merci d'avance pour vos réponses ^^

7 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 févr. 2009 à 13:49
Bonjour,
dans ta fonction d'insertion, en entrée
tu sauvegardes les positions des scrolls que tu restitues en fin de fonction...

//-------------------------------
function
insertion( where_, txt_){
  //-- Get Objet TEXTAREA

  var O_Dest = document.getElementById( where_);
   //-- Sauve la position du scroll
  var sLeft =
O_Dest.scrollLeft;
  var sTop = O_Dest.scrollTop;

  //... tu fais ce que tu as à faire ...//

  //-- Restaure la position du scroll

  O_Dest.scrollLeft = sLeft;
  O_Dest.scrollTop = sTop;

}
par exemple...
;O)
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 20:00
Bonjour,
Généralement la TEXAREA met le focus sur
la partie ajoutée, ce qui reste pratique pour voir l'évolution du contenu...

Pour palier à ton problème, si j'ai bien tout compris, il te faut lire la
position du scroll, scrollTop, avant
insertion, puis de la remettre après insertion.
;O)
0
demicervo Messages postés 17 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 juin 2010
24 févr. 2009 à 10:39
Merci pour ta réponse.

J'ai essayé de chercher de ce côté là et j'ai donc fait ceci :

<SCRIPT LANGUAGE="JavaScript">
//-----------------
function scroll(){
var barre=document.getElementById(message).scrollTop;
return barre;
}

//-----------------
function scroll2(){
document.getElementById(message).scrollTop=scroll();
}

</SCRIPT>

<!--HTML-->

<textarea name="message" id="message" rows="40" cols="35" class="bb_area" tabindex="3" class="post" onchange="scroll2()" onselect="storeCaret(this);" onclick="mix(this);" onkeyup="storeCaret(this);"><?php if(isset($filename)){print $contents;}?></textarea>

Or je ne sais pas si mes fonctions sont correctes et à quel moment les appeler...

Merci
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
24 févr. 2009 à 21:54
Bonjour,
une source qui peut peut-être t'aider
CURSEUR dans TEXTAREA
;O)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
demicervo Messages postés 17 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 juin 2010
27 févr. 2009 à 10:09
Merci. J'avais déjà vu ce code et je m'en été inspiré d'ailleurs. J'ai regardé les commentaires associé à ton code (bien pratique d'ailleurs ^^) et la réponse à mon problème semblerait se trouver ici :

http://www.developpez.net/forums/showthread.php?t=352200#post2151969

Mais je ne vois pas vraiment comment m'en servir.
Je dois l'appliquer d'abord pour récupérer la valeur initiale mais de quel façon ?

Et pour remettre la nouvelle valeur je le fais dans le onchange de ma textarea ?

Merci d'avance
0
demicervo Messages postés 17 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 juin 2010
27 févr. 2009 à 15:04
Ca fonctionne !!!

Merci beaucoup pour ton aide !!!
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 févr. 2009 à 16:09
Il n'en demeure pas moins qu'en remettant le focus
sur l'ajout le scroll devrait être automatique.
Le principal reste que cela
marche...
;O)
0