IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[SRC] Défilement de textes et d'images


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut [SRC] Défilement de textes et d'images
    Voici deux exemples de diaporamas avec un défilement alterné.

    Source : Diaporama avec un défilement horizontal (textes et images)
    Pièce jointe : diaporamaH2.zip
    Commentaires :
    - Le code est commenté.
    - Le défilement du texte et des images est alterné (de la droite vers la gauche puis de la gauche vers la droite).
    - Les images sont cliquables (modifier la fonction clicSurImage(objCellule)). Si vous ne voulez pas gérer les clics, laissez la fonction vide.
    - Vitesse de défilement : pour l'augmenter il faut augmenter la valeur de la variable pas ou diminuer la valeur de tempo (qui est une chaine de caractères).
    Ces variables sont déclarées dans la partie "//***** Fonctions du diaporama *****//"

    - Code valide XHTML 1.1

    /!\ Pour les dimensions des composants utilisez le pixel comme unité !! (pas le % - bug)
    Source : Diaporama avec un défilement vertical (textes et images)
    Pièce jointe : diaporamaV.zip
    Commentaires :
    - Le code est commenté.
    - Le défilement du texte et des images est alterné (du bas vers le haut puis du haut vers le bas).
    - Les images sont cliquables (modifier la fonction clicSurImage(objCellule)). Si vous ne voulez pas gérer les clics, laissez la fonction vide.
    - Vitesse de défilement : pour l'augmenter il faut augmenter la valeur de la variable pas ou diminuer la valeur de tempo (qui est une chaine de caractères)
    Ces variables sont déclarées dans la partie "//***** Fonctions du diaporama *****//"

    - Code valide XHTML 1.1

    /!\ Pour les dimensions des composants utilisez le pixel comme unité !! (pas le % - bug)
    • Les codes fonctionnent sous IE7, FF, Konqueror.
    • Les codes n'ont pas été testés sous IE6, Opéra, Safari (à vérifier donc ).


    [Bug]
    Dans les codes sources : remplacez
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var chemin = "images\\";
    (=> Konqueror n'accepte pas cette syntaxe)
    par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var chemin = "images/";



    [/Bug]
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Source : Défilement de texte horizontalement ou comment réinventer la balise marquee
    Code :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    
    <title>Défilement de texte</title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="fr" />
    <meta name="Author" content="Auteur - www.developpez.com" />
     
    <style type="text/css">
    <!--
    .conteneur{
      width: 400px;
      border: 5px #DDDDDD ridge;	/* bordure du conteneur */
    
      overflow: hidden;	/* on cache les barres de défilement */
      padding-left: 0px;      /* /!\ pas de padding-left ni de padding right /!\ */
      padding-right: 0px;  
      padding-top: 15px;          /* padding-top et padding-bottom pour un centrage vertical */
      padding-bottom: 15px;
    }
    
    /* style du texte qui doit défiler */
    .aspectTexte{
     font-size: 20pt;
     font-family: Comic Sans MS;
     color: #0000FF;
    }
    -->
    </style>
     
    <script type="text/javascript">
    <!--
    // Texte à faire défiler :
    var texte = "Ceci est le texte qui doit défiler...................";
    
    var vitesse = "10";     //vitesse de défilement (en ms)
    var pas = 2;            //pas de défilement (en px)
    var sens = 1;  //1=> de la droite vers la gauche (par défaut)
                   //-1=> de la gauche vers la droite
    
    // Fonctions du diaporama               
    var conteneur , chrono, X;
    
    function creationDiaporama()
    {
      var noeudDiv, noeudTxt, crlf, noeudSpan;
      
      conteneur = document.getElementById("conteneur");
      
      noeudDiv = document.createElement("div");
      noeudSpan = document.createElement("span");
      crlf = document.createElement("nobr");
      noeudTxt = document.createTextNode(texte);
      
      
      crlf.appendChild(noeudTxt);
      noeudSpan.appendChild(crlf);
      noeudDiv.appendChild(noeudSpan);
      conteneur.appendChild(noeudDiv);
      
      noeudDiv.style.textAlign = "center";
      noeudDiv.style.padding = "0px";
      noeudDiv.style.margin = "0px";
        
      noeudSpan.className = "aspectTexte";
    
      if (noeudSpan.offsetWidth<conteneur.scrollWidth)
        noeudDiv.style.width = conteneur.scrollWidth*3+"px";
      else
        noeudDiv.style.width = noeudSpan.scrollWidth*3+"px";
    
      if (sens!=-1 && sens!=1)
        sens = 1;
      
      if (sens==1)  
        X = 0; 
      else
      {
        conteneur.scrollLeft = conteneur.scrollWidth;  
        X = conteneur.scrollLeft;
      } 
      
      chrono = setTimeout("defile()",vitesse);
    }
    
    // Défilement du texte
    function defile()
    {
      X = X + (sens)*pas;
      conteneur.scrollLeft = X;
      
      if (sens==1)
      {
        if (conteneur.scrollLeft<X)
          X = 0;
        chrono = setTimeout("defile()",vitesse); 
      }
      else
      {
        if (conteneur.scrollLeft==0)
        {
            conteneur.scrollLeft = conteneur.scrollWidth;
            X = conteneur.scrollLeft;
        }
        chrono = setTimeout("defile()",vitesse);
      }
    }
    
    // Arret du défilement lorsque l'on ferme la page
    function stopDiaporama()
    {
      clearTimeout(chrono);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="creationDiaporama()" onunload="stopDiaporama()">
     
    <div id="conteneur" class="conteneur">
    </div>
    
     
    </body>
     
    </html>
    Commentaires :
    - Défilement du texte de la gauche vers la droite ou de la droite vers la gauche
    => variable sens :
    sens = 1 de la droite vers la gauche (par défaut)
    sens = -1=> de la gauche vers la droite
    - Variable vitesse : vitesse de défilement en ms
    - Variable pas : pas du défilement en px
    - Variable texte : contient le texte qui doit défiler
    - Code valide XHTML 1.1
    • Le code fonctionne sous IE7 et FF.
    • Le code n'a pas été testé sous IE6, Opéra, Konqueror, Safari (à vérifier donc ).

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Source : Défilement de texte verticalement
    Code :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    
    <title></title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="fr" />
    <meta name="Author" content="Auteur - www.developpez.com" />
     
    <style type="text/css">
    <!--
    .conteneur{
      width: 400px;     /* /!\ ne pas oublier de renseigner la hauteur et la largeur /!\ */
      height: 100px;  
      border: 5px #DDDDDD ridge;	/* bordure du conteneur */
      
      overflow: hidden;	/* on cache les barres de défilement */
      padding-top: 0px;    /* /!\ pas de padding-top ni de padding-bottom /!\ */
      padding-bottom: 0px;  
      padding-left: 15px;       /* padding-left et padding-right pour un centrage horizontal */
      padding-right: 15px;
    }
    
    /* style du texte qui doit défiler */
    .aspectTexte{
     text-align: center;
     font-size: 20pt;
     font-family: Comic Sans MS;
     color: #0000FF;
    }
    -->
    </style>
     
    <script type="text/javascript">
    <!--
    // Texte à faire défiler :
    var texte = "Ceci est le texte qui doit défiler...................";
    
    var vitesse = "20";     //vitesse de défilement (en ms)
    var pas = 2;            //pas de défilement (en px)
    var sens = 1;  //1=> de la bas vers le haut (par défaut)
                   //-1=> de la haut vers le bas
    
    // Fonctions du diaporama               
    var conteneur , chrono, X;
    
    function creationDiaporama()
    {
      var elTable, elLigne, elCell, elTxt;
      
      conteneur = document.getElementById("conteneur");
       
      elTable = document.createElement("table");
      elLigne = elTable.insertRow(-1);
      elCell = elLigne.insertCell(0);
      
      elTxt = document.createTextNode(texte);
      elCell.appendChild(elTxt);
      
      elTable.cellpadding = "0";
      elTable.cellspacing = "0";
      
      elTable.style.verticalAlign = "middle";
      elTable.className = "aspectTexte";
      
      conteneur.appendChild(elTable);
      
      if (elTable.offsetHeight<conteneur.offsetHeight)
        elTable.style.height = conteneur.offsetHeight*3 + "px";
      else
        elTable.style.height = elTable.offsetHeight*3 + "px";  
      
      if (sens!=-1 && sens!=1)
        sens = 1;
      
      if (sens==1)  
        X = 0; 
      else
      {
        conteneur.scrollTop = conteneur.scrollHeight;  
        X = conteneur.scrollTop;
      } 
      
      chrono = setTimeout("defile()",vitesse);
    }
    
    // Défilement du texte
    function defile()
    {
      X = X + (sens)*pas;
      conteneur.scrollTop = X;
      
      if (sens==1)
      {
        if (conteneur.scrollTop<X)
          X = 0;
        chrono = setTimeout("defile()",vitesse); 
      }
      else
      {
        if (conteneur.scrollTop==0)
        {
            conteneur.scrollTop = conteneur.scrollHeight;
            X = conteneur.scrollTop;
        }
        chrono = setTimeout("defile()",vitesse);
      }
    }
    
    // Arret du défilement lorsque l'on ferme la page
    function stopDiaporama()
    {
      clearTimeout(chrono);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="creationDiaporama()" onunload="stopDiaporama()">
     
    <div id="conteneur" class="conteneur">
    </div>
    
     
    </body>
     
    </html>

    Commentaires :
    - Défilement du texte du haut vers la bas ou du bas vers le haut
    => variable sens :
    sens = 1 du bas vers le haut (par défaut)
    sens = -1=> du haut vers le bas
    - Variable vitesse : vitesse de défilement en ms
    - Variable pas : pas du défilement en px
    - Variable texte : contient le texte qui doit défiler
    - Code valide XHTML 1.1
    • Le code fonctionne sous IE7 et FF.
    • Le code n'a pas été testé sous IE6, Opéra, Konqueror, Safari (à vérifier donc ).

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Source : "Simple" diaporama
    Code :

    Code HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
     
    <title></title>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="fr" />
    <meta name="Author" content="Auteur - www.developpez.com" />
     
    <style type="text/css">
    <!--
    .conteneur{
      text-align: center;
      width: 300px;
    }
     
    .bouton{
      text-align: center;
      width: 50px;
      height: 30px;
    }
     
    .image{
      width: 80px;
    }
     
     
    .listeVignettes{
      border: ridge #AAAAAA 5px;
      overflow: auto;
      width: 300px; 
      height: 100px;
      background-color: #000000;
      padding: 0px;
    }
     
    .vignettes{
      width: 40px;
      margin: 4px;
      background-color: #FFFFFF;
      border: ridge #FFFFFF 2px;
      cursor: pointer;  
    }
    -->
    </style>
     
    <script type="text/javascript" src="diaporama.js"></script> 
     
    </head>
     
    <body onload="afficheVignettes(); defileImage(null)">
     
    <div class="conteneur">
      <img src="" id="idImage" class="image" alt="image" /><br />
      <input class="bouton" id="btn1" type="button" value=" |&lt; " onclick="defileImage(this)" />
      <input class="bouton" id="btn2" type="button" value=" &lt; " onclick="defileImage(this)" />
      <input class="bouton" id="btn3" type="button" value=" &gt; " onclick="defileImage(this)" />
      <input class="bouton" id="btn4" type="button" value=" &gt;| " onclick="defileImage(this)"/>
    </div>
     
    <div>
      <br/><br/><br/>
    </div>
     
    <div id="Cvignettes" class="listeVignettes">
    </div>
     
    </body>
     
    </html>

    Code JS :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    var chemin = "images/"; // dossier contenant les images
    var tabImg = new Array("i1.gif", "i2.gif", "i3.gif", "i4.gif", "i5.gif");
    var i;
     
     
    function defileImage(arg)
    {
      if (!isNaN(arg) && arg!=null)
      {
        i = arg;
      }
     
      if (arg==null)
        i = 0;
      else
      {  
        switch (arg.id)
        { 
          case "btn1":    // id du bouton "première image"
              i = 0;
              break;
          case "btn2":    // id du bouton "image précédente"
              i--;
              break;
          case "btn3":    // id du bouton "image suivante"
              i++;
              break;
          case "btn4":    // id du bouton "dernière image"
              i = tabImg.length-1;
              break;
          /*default:
              i=0;*/
        }  
      }
     
      document.getElementById("btn1").disabled = (i==0);
      document.getElementById("btn2").disabled = (i==0);    
     
      document.getElementById("btn3").disabled = (i==tabImg.length-1);
      document.getElementById("btn4").disabled = (i==tabImg.length-1); 
     
      document.getElementById("idImage").src = chemin + tabImg[i];
    }
     
    function afficheVignettes()
    {
      var j, objImg;
      var c;
     
      c = document.getElementById("Cvignettes");
     
      for (j=0; j<tabImg.length; j++)
      {
        objImg = document.createElement("img");
        objImg.src = chemin + tabImg[j];
        objImg.className="vignettes";
     
        objImg.n = j;
        objImg.onclick = function(){defileImage(this.n)}
     
        c.appendChild(objImg); 
      }
    }

    Commentaires :
    - Il faut simplement préciser le dossier des images (variable chemin) et le nom des images (variable tableau tabImg).


    - J'ai dû sortir le code JS de la page HTML pour une validation XHTML 1.1.
    - C'est un simple diaporama avec les boutons "premier", "suivant", "précédent" et "dernier".
    - La fonction afficheVignettes() permet d'afficher les vignettes du diaporama. On peut cliquer sur les vignettes en question pour un affichage direct. La fonction defileImage() gère le tout en fonction du type de l'argument (null, un nombre qui correspond à l'index de l'image dans le tableau tabImg, ou un bouton cliqué).
    - Le code fonctionne sous IE 7 et FF (pas testé sous IE 6, Opera et Konqueror).

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Source : Défilement alterné de textes

    Commentaire :
    J'ai simplement repris le script diaporamaH2.html du premier post. Je l'ai modifié pour qu'il ne fasse défiler que du texte (j'ai supprimé les variables liées aux images, c'est tout ).
    les commentaires que j'ai fait pour diaporamaH2.html et diaporamaV.html sont valables pour ce script.

    Code :
    DiaporamaH3.html :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    
    <title>Défilement alterné de texte</title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="fr" />
    <meta name="Author" content="Auteur - www.developpez.com" />
     
    <style type="text/css">
    <!--
    /* div conteneur et cellule du tableau de même longueur */
    .conteneur, .cellule{
    	width: 400px;	/* valeur modifiable ;-) /!\ entrer une valeur en pixel /!\ */
    }
    
    /* Le conteneur s'adapte en hauteur (height). Il n'est pas nécessaire de préciser sa hauteur */
    .conteneur{
    	border: 5px #AAAAAA ridge;	/* bordure du conteneur */
    	overflow: hidden;						/* on cache les barres de défilement */
    	padding: 0px;								/* pas de marge intérieure */
    }
    
    /* proprités de la cellule (contient le texte) */
    .cellule{
    	text-align: center;					/* alignement des composants dans la cellule */	
    	vertical-align: middle;
    	border: none;
    	cursor: pointer;						/* curseur en forme de main */
    	
    	/* propriétés du texte dans la cellule */
    	color: #000000;								
    	font-family: Comic Sans MS;
    	font-size: 12pt;
    	background-color: #DDDDDD;
    }
     
    -->
    </style>
     
    <script type="text/javascript">
    <!--
    
    var tabTxt = new Array("Commentaire 1", "Voici un long, terriblement long et ennuyeux commentaire 2", "Commentaire 3", "Coucou", "Un dernier commentaire pour la route :D");
    
    var attente = "3000"; //délai d'affichage du texte en ms
    
    // Action à réaliser lors du clic sur une cellule. 
    // id est de la forme "celluleX" avec X compris entre 0 et tabTxt.length-1
    function clicSurTexte(objCellule)
    {
    	//alert(objCellule.id);
      
    	switch (objCellule.id)
    	{
    		case "cellule0" : 	//action a réaliser lors du clic sur la cellule 0
    				alert("coucou");
    				break;
    		case "cellule1" :		//action a réaliser lors du clic sur la cellule 1
    				alert("bonjour :-)");
    				break;
    		case "cellule2" :		//action a réaliser lors du clic sur la cellule 2
    				alert("hello");
    				break;
    	}  
    }
    
    /*********************************************************/
    //***** Fonctions du diaporama *****//
    var tempo = "1";
    var pas = 2;
    var chrono;
    var posFin, conteneur, sens;
    
    // Ajout du texte dans le div conteneur
    function creationDiaporama()
    {
    	var i;
    	var txtDiapo;
    	var conteneur = document.getElementById("conteneur");
    	
    	// Création du tableau contenant les élements
    	var elTable = document.createElement("table");			
    	// Ajout d'une ligne dans ce tableau
    	var elLigne = elTable.insertRow(-1);
    	var elCell;
    		
    	elTable.style.width = parseInt(conteneur.clientWidth * tabTxt.length) + "px";
    	elTable.cellSpacing = "0";
    	elTable.cellPading = "0";
    	
    	for (i=0; i<tabTxt.length; i++)
    	{	
    		// Création du noeud texte
    		txtDiapo = document.createTextNode(tabTxt[i]);
    		
    		// Création de la cellule contenant les objets
    		elCell = elLigne.insertCell(i);
    		elCell.className = "cellule";
    		elCell.id = "cellule"+i;
    		elCell.objetCellule = elCell;
    		elCell.onclick = function(){clicSurTexte(this.objetCellule);}
    		
    		// Ajout des éléments dans la cellule
    		elCell.appendChild(txtDiapo);
    	}
    	
    	// Ajout du tableau dans le div conteneur
    	conteneur.appendChild(elTable);
    	chrono = setTimeout("deroule()",attente);
    } 
    
    // Détermination du sens de défilement du texte et des distances à parcourir
    function deroule()
    {
    	var distance;
    
    	conteneur = document.getElementById("conteneur");
    	distance = conteneur.scrollWidth / tabTxt.length;
    	
    	if (conteneur.scrollLeft + distance >=conteneur.scrollWidth)
    	{
    		sens = -1;
    	}
    
    	if (conteneur.scrollLeft<distance)
    	{
    		sens = 1;
    	}
    	
    	posFin = conteneur.scrollLeft + sens * distance;
    	chrono = setTimeout("defileTexte()", tempo);
    }
    
    // Défilement du texte
    function defileTexte()
    {
    	conteneur.scrollLeft = conteneur.scrollLeft + sens * pas;	
    	
    	if (sens == 1)
    	{
    		if (conteneur.scrollLeft<posFin)
    			chrono = setTimeout("defileTexte()", tempo);
    		else
    			chrono = setTimeout("deroule()",attente);
    	}
    	else
    	{
    		if (conteneur.scrollLeft>posFin)
    			chrono = setTimeout("defileTexte()", tempo);
    		else
    			chrono = setTimeout("deroule()",attente);
    	
    	}
    
    
    	// Pour debugage ;-)
    	/*document.getElementById('idTest').innerHTML=conteneur.scrollLeft + " / " + posFin;*/
    
    }
    
    // Réinitialisation du diaporama lors de la fermeture de la page
    function stopDiaporama()
    {
    	clearTimeout(chrono);
    	document.getElementById("conteneur").scrollLeft = 0;
    }
    
     
    //-->
    </script>
     
    </head>
     
    <body onload="creationDiaporama()" onunload="stopDiaporama()">
     
    <div class="conteneur" id="conteneur">
     
    </div>
    
    <!-- pour debugage  
    <div id="idTest"></div>
     -->
     
    </body>
     
    </html>

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Diaporama avec un défilement horizontal alterné des textes et d'images (2).

    J'ai repris le script de défilement horizontal du 1er message de cette discussion (diaporamaH2.zip).

    Je l'ai modifié pour réaliser des défilements par groupe de N images. Cf. cette discussion.
    Le script est dans la pièce jointe diaporamaH4.zip de cette discussion.


    Les commentaires pour diaporamaH2.zip s'appliquent à diaporamaH4.zip

Discussions similaires

  1. Défilement de textes et d'images
    Par jemapo dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 14/02/2009, 15h08
  2. défilement de texte et d'images
    Par osia1 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/04/2008, 10h29
  3. [HTML]Peut-on écrire un texte sur une image ?
    Par flogreg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/02/2005, 17h24
  4. [FLASH MX2004] Défilement de texte alpha
    Par black is beautiful dans le forum Flash
    Réponses: 7
    Dernier message: 03/02/2005, 22h40
  5. TRichEdit défilement de texte automatique
    Par bloops dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/06/2003, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo