11545 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je veux faire defiler en boucle le contenu d'une iframe pour faire un genre de diaporama, pour cela j'ai cherche comment recuperer la position courante de la barre de scroll, j'ai fait differents tests mais sans succe, existe t'il une syntaxe autre que scrollTop pour avoir la position horizontale.Avec l'exemple ci_dessous j'ai toujours 0 .(test avec mozilla firefox) Smiley bawling

pour tester je faisais ceci:



<IFRAME id="test" onMouseOver='test();'  SRC='/page/inc_scroll.php' NAME='test' scrolling='yes' FRAMEBORDER='1' HEIGHT='200' WIDTH='400'> 
//Votre naviguateur ne supporte pas l'iframe 
</IFRAME>

<div id="text1"></div> 

<script>
function test()
{
position=document.getElementById("test").scrollTop ;
document.getElementById("text1").innerHTML=position;
}
</script>

Modifié par zacc (31 Oct 2006 - 00:53)
Modérateur
bonjour,

heu , tu n'y arriveras pas comme ça

mais le contenu de l'iframe est accessible.
par exemple ce script :
function changeFrame() {

    var oIframe = document.getElementById("laframe");

    var oDoc = (oIframe.contentWindow ||  

oIframe.contentDocument);

    if (oDoc.document) {

        oDoc = oDoc.document;



    }

    //oDoc.body.style.display = "none";// pour test visuel, illico presto

	var hauteur_body=oDoc.body.offsetHeight;

document.getElementById('laframe').style.height=hauteur_body+'px';

    return true;



}</script>


permet de determiné la hauteur de la page qu'elle contient , et d'adapté la hauteur de la frame a celle-ci .
Il te suffit alors de ne rechercher que la hauteur/position du scroll du "body" du document chargé dans l'iframe.
<edit>En fait c'est le contenu qui affiche une barre de defilement , et pas l'iframe Smiley smile
++
Modifié par gcyrillus (31 Oct 2006 - 02:56)
Notons à toutes fins utiles que document.body.scrollXXX renvoie toujours 0 en mode strict avec Internet Explorer.
IL faut utiliser document.documentElement.scrollXXX à la place.

Au passage : offsetHEight donne la hauteur visible, pas la hauteur réelle si le contenu est scrollable. scrollHeight donne la hauteur totale scroll inclus.
je vois bien l'effet produit par le morceau de script, mais comment fait t'on pour recuperer la position du scroll, c'est peut etre evident pour vous mais j'ai pas compris Smiley biggol

a écrit :

Il te suffit alors de ne rechercher que la hauteur/position du scroll du "body" du document chargé dans l'iframe.


Je vois pas comment faire cela justement.
Bon jour, je lú ton problem, pour savuar al distance X et Y cette script te será utile.



function distXY(coor)
{
  //returne la distance X u Y
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }

  switch (coor)
  {
    case('X'):
    case('x'):
        return scrOfX;
    break;

    case('Y'):
    case('y'):
        return scrOfY;
    break;
  }
}



Excuse mon francé !
Salút

(c'est bien comme ca?)
Modifié par Pablogo (12 Nov 2006 - 02:30)
Administrateur
Bonjour Pablogo et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif