JavaSscript : forcer scrollbar ds un div

Fermé
aza - 9 nov. 2004 à 11:54
 Patrick Etienne - 9 févr. 2007 à 13:57
Bonjour,

J'ai une page dans laquelle j'ai inséré un calque (div) avec une scrollbar verticale.
Ce div est rempli dynamiqement, il contient un tableau dont le nombre de lignes peut varier. A chaque ajout de ligne dans le tableau, j'aimerais que l'on puisse voir la dernière ligne du tableau, et donc forcer le scrollbar du div à aller tout en bas.

Les méthodes scroll (et scrollBy, scrollTo) ne fonctionnent qu'avec l'objet window et pas avec les calques...

J'ai bien une méthode qui fonctionne très bien en statique (quand je code en dur dans la page), mais elle ne fonctionne plus en dynamique (quand je génère le code avec une fonction).

La voici :
J'ajoute la ligne suivante juste après le tableau, mais toujours dans le div (sacahnt que 'last' est l'id du dernier <tr> du ta&bleau) :
</table>
<script>document.all.last.scrollIntoView(false);</script>
</div>

Quelqu'un aurait-il une piste ou une solution à ce problème ?

Merci beaucoup d'avance...

Aza

PS : je travaille sous IE, et je n'ai pas spécialement besoin que la solution soit compatible avec les autres navigateurs...

3 réponses

un ch'tit exemple ?
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<div	name="div1"
	style="	overflow:'auto';
		width:'200px';
		height:'50px';">
<table	name="tableau"
	id="tableau"
	border=4>
<tr><td>1-1</td><td>1-2</td><td>1-3</td></tr>
<tr><td>2-1</td><td>2-2</td><td>2-3</td></tr>
<tr><td>3-1</td><td>3-2</td><td>3-3</td></tr>
<tr><td>4-1</td><td>4-2</td><td>4-3</td></tr>
<tr><td>5-1</td><td>5-2</td><td>5-3</td></tr>
</table>
</div>
<script type="text/javascript">
tableau.rows[tableau.rows.length-1].cells[0].focus();
</script>
</BODY>
</HTML>
3
Patrick Etienne
9 févr. 2007 à 13:57
La solution serait peut-être d'ajouter un textbox après ton tableau de manière à ce qu'il ne soit pas visible (couleur de fond et des bords = celle du body - ne pas utiliser la propriété style.visibility)
et avec javascript:
window.document.getElementById(id de ton textbox).scrollIntoView(false);
2
merci euh !
Je n'avais pas pensé au focus... tete de linotte.
merci ;-)
0