OVH Cloud OVH Cloud

Iframe + Scrollbar en bas

8 réponses
Avatar
Toto Le Ouf
Bonjour à tous,

Sur une de mes pages j'ai une Iframe dont le contenu varie en augmentant :
une fonction rajoute des lignes de texte tout les n secondes. Au bout d'un
certain temps, le nombre de lignes de texte dépasse le nombre de lignes de
la Iframe : les lignes ainsi rajoutées ne sont plus visibles, je dois
descendre la scrollbar de la IFrame pour les voir.

Y a-t-il une fonction qui me permettrait de placer la scrollbar de la Iframe
en bas à chaque rajout de ligne ?

Merci d'avance.

T.

8 réponses

Avatar
ASM
Bonjour à tous,

Sur une de mes pages j'ai une Iframe dont le contenu varie en augmentant :
une fonction rajoute des lignes de texte tout les n secondes. Au bout d'un
certain temps, le nombre de lignes de texte dépasse le nombre de lignes de
la Iframe : les lignes ainsi rajoutées ne sont plus visibles, je dois
descendre la scrollbar de la IFrame pour les voir.

Y a-t-il une fonction qui me permettrait de placer la scrollbar de la Iframe
en bas à chaque rajout de ligne ?


pas essayé :

document.moniFrame.scrollBy(0,20)

à chaque appel d'une nouvelle ligne ?


ou bien ? :

Dans l'iframe les lignes seront ajoutées dans un div
appelons-le : 'expo'
apès ce div on pose une ancre
appelons-la : 'fin'
et à chaque ajout de lignes on fait aller à l'ancre

document.iFrame.document.getElementById('expo').appenChild('lignes');
document.iFrame.location = document.iFrame.location+'#fin";

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Laurent vilday
Y a-t-il une fonction qui me permettrait de placer la scrollbar de la
Iframe
en bas à chaque rajout de ligne ?


pas essayé :

document.moniFrame.scrollBy(0,20)


Mais euh :D A peine le temps de créer mon fichier de test que tu as déjà
répondu. scrogneugneu :D

M'enfin pas grave, je proposais qqchose d'un peu différent, donc je
valide mon message, tant pis pour la redondance avec ton post :)

--
laurent


Avatar
Laurent vilday
Sur une de mes pages j'ai une Iframe dont le contenu varie en augmentant :
une fonction rajoute des lignes de texte tout les n secondes. Au bout d'un
certain temps, le nombre de lignes de texte dépasse le nombre de lignes de
la Iframe : les lignes ainsi rajoutées ne sont plus visibles, je dois
descendre la scrollbar de la IFrame pour les voir.

Y a-t-il une fonction qui me permettrait de placer la scrollbar de la Iframe
en bas à chaque rajout de ligne ?


La gestion du scrolling dans les fenêtres c'est scroll() et scrollBy()
et à priori ca devrait être pareil pour les iframes, je pense. Et oui,
après test (on me la fait plus :) , effectivement, ca marche bien aussi
pour les iframes.

iframeReference.scroll(gauche, top);
iframeReference.scrollBy(gauche, top);

http://developer.mozilla.org/en/docs/DOM:window.scrollBy

Sinon, pour les éléments (HTMLElement), il suffit de manipuler le
scrollTop en lui attribuant la valeur du scrollHeight.

Ceci dit, il serait plus pertinent et beaucoup plus "propre" imo
d'ajouter les nouvelles lignes devant les existantes afin de
(1) avoir toujours la dernière ligne insérée au top
(2) ne pas s'embêter à scroller
(3) aucun risque que le scroll soit insuffisant

http://mokhet.com/tests/scrolliframetobottom.html

--
laurent

Avatar
ASM

Ceci dit, il serait plus pertinent et beaucoup plus "propre" imo
d'ajouter les nouvelles lignes devant les existantes afin de
(1) avoir toujours la dernière ligne insérée au top


Je pensions bien soumettre l'éventualité de ce choix
mais z'est-il pertinent ?

http://mokhet.com/tests/scrolliframetobottom.html


Après t'avoir laissé HUIT l o n g u e s minutes
pour ta quête de réfs et la mise en ligne du test débuggué

arghhh ! que vois-je ? y pas de bouton de stop ?

:-))

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
HUIT l o n g u e s minutes


heu ! ? 54 mns !


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Laurent vilday
HUIT l o n g u e s minutes


heu ! ? 54 mns !


Lol. 18:51 - 18:46 = 5min, pas 8 ni 54, 5min :D

M'enfin, on dérive un peu trop là lol, le principal c'est que "Toto"
arrive, j'espère, à son objectif :)

--
laurent


Avatar
ASM
HUIT l o n g u e s minutes


heu ! ? 54 mns !


Lol. 18:51 - 18:46 = 5min, pas 8 ni 54, 5min :D


Meuh non !
- toto = 17:52
- ASM = 18:46
tu avais donc : 8 + 45 = 53 mn pour répondre avant moi.

M'enfin, on dérive un peu trop là lol, le principal c'est que "Toto"
arrive, j'espère, à son objectif :)


En tous cas, à part le stop,
on ne regrette pas les 5 mn d'attente supplémentaires :-)


--
Stephane Moriaux et son [moins] vieux Mac



Avatar
Laurent vilday
Meuh non !
- toto = 17:52
- ASM = 18:46
tu avais donc : 8 + 45 = 53 mn pour répondre avant moi.


lol, qu'est-ce qu'on doit s'embeter pour faire des calculs pareils :D

En tous cas, à part le stop,
on ne regrette pas les 5 mn d'attente supplémentaires :-)


Bon, c'est bien parce que c'est toi :D , Toggle du stop/start sur click
dans le document principal.

http://mokhet.com/tests/scrolliframetobottom.html

--
laurent