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

JavaScript Discussion :

Faire défiler un texte (fichier *.txt)


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut Faire défiler un texte (fichier *.txt)
    Bonjour,

    J'ai une page web, sur cette page, je fais défiler un texte de droite à gauche, j'utilise pour cela la commande MARQUEE et cela fonctionne très bien. j'ai cependant plusieurs problèmes et demandes...

    J'aimerais pouvoir comme indiqué dans le titre, aller chercher le contenu du texte directement dans un fichier *.txt, j'ai essayé avec le code <object data="Classeur1.txt"/> cela fonctionne, le texte est bien là, mais impossible de le mettre en forme, impossible de retirer une barre de défilement horizontale, sauf en fixant la longueur du texte... 100% ne fonctionne pas etc... je me tourne donc vers du JavaScript, mais là, je suis nul...

    Donc, je me permet de poster cette demande.

    J'aimerais pouvoir :
    • Faire défiler un texte, (source : *.txt) de droite vers la gauche avec possibilité de choisir la taille du texte, la couleur, la couleur de fond de la zone de défilement etc...
    • Faire défiler un texte, (source : *.txt) de bas en haut, style générique de film dans une box (<div>) avec possibilité de choisir la taille du texte, la couleur, la couleur de fond de la zone de défilement, que le texte passe à la ligne automatiquement si la box ne permet pas un affichage en une ligne etc...



    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    on fait quoi de ton autre discussion, Intégrer fichier TXT avec MARQUEE ,à la quelle il serait poli de répondre, c'est la moindre des choses .

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Bonjour,
    Il fallait juste m'en laisser le temps... mais effectivement j'aurais peut-être dû faire l'inverse... répondre et puis poster dans une autre rubrique personne n'est parfait

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    C'est tout à fait faisable en CSS, on en avait parlé sur le forum dans cette discussion : Défilement horizontal en CSS, d'un texte sans saccades, il y a des solutions JavaScript si mes souvenirs sont bons.

    J"avais mis un lien vers une démo CSS : [CSS] Texte défilant.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Je reviens vers vous, car je n'y arrive pas... j'arrive bien "en partie" à réaliser les exemples du précédent message, mais je n'arrive pas à les adapter...

    Ce que j'aimerais ces :

    1. que le texte provienne d'un fichier *.txt
    2. que le code s'adapte automatiquement par rapport à la longueur du texte présent dans le fichier *.txt
    3. que le texte démarre du bord droit et non du coté gauche comme dans l'exemple



    Ps : le contenu du fichier *.txt sera toujours sur une ligne, car le fichier texte est créé préalablement par du vba Excel !



    Merci d'avance pour votre aide :-)

  6. #6
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    lire un fichier texte => utiliser un fetch
    un texte de 50 pages ?
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Nonnnnn.... je dirais 100 caractères maximum que je ferais défiler à un endroit de ma page web...

  8. #8
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    pour faire défiler un texte d'une centaine de caractères le plus simple c(est d'utiliser la fonction animate de jQuery en jouant sur la postion absolute de ton élément contenant le text avec un left identique à la taille du conteneur
    puis diminuer sa valeur jusqu'a en être négatiive si la longueur du texte est plus longue que celle du conteneur.
    apres dans le callback du animate tu peux éventuellement lancer un setTimeout pour rejouer en boucle cette animation.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Holaaaaa, merci, mais là tu parles chinois pour moi

    Je vais encore chercher

    Bonne journée

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Je viens de mettre en ligne une solution simple de mise en oeuvre : Texte défilant avec départ à droite.
    C'est du 100% CSS pure jus concernant l'animation, plus simple que la version précédemment citée.

    Concernant le chargement automatique du texte cela peut se faire aisément en utilisant la technique Ajax.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- @NoSmoking
    Ce serait bien que tu affiches dans la page démo aussi le code HTML + CSS.
    Notamment pour les débutants : ça éviterait d'avoir à chercher dans le code source.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          <div class="marque-rtl">
            <div class="msg">Texte défilant horizontalement plus long que la fenêtre de défilement</div>
          </div>
    Code css : 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
    /* texte défilant, de droite vers la gauche, avec départ du texte à droite de la fenêtre de défilement */
    /* le block conteneur */
    .marque-rtl {
      max-width: 30em;
      margin: 2em auto;
      border: 10px solid #F0F0FF;
      overflow: hidden;
      box-shadow: 0 .25em .5em #CCC,inset 0 0 1em .25em #CCC;
    }
    .marque-rtl > div {
      display: inline-block;
      padding-right: 2em;
      padding-left: 100%;
      white-space: nowrap;
      animation: defilement-rtl 15s infinite linear;
      cursor: pointer;
    }
    .marque-rtl:hover > div {
      animation-play-state: paused;
    }
    .msg {
      font-size: 1.5em;
      line-height: 2em;
    }
    .msg:first-letter {
      font-weight: 700;
      color: #F00;
    }
    @keyframes defilement-rtl {
      0% {
        transform: translate3d(0,0,0);
      }
      100% {
        transform: translate3d(-100%,0,0);
      }
    }



    2- Pour intégrer le fichier texte avec PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          <div class="marque-rtl">
            <div class="msg"><?php include('Classeur1.txt'); ?></div>
          </div>
    Il faut que le fichier ait l'extension .php, et bien sûr que PHP soit activé !



    3- Pour un défilement vertical : https://codepen.io/jreaux62/pen/JagyMj

    Code css : 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
    /* ---------------- */
    /* Texte défilant vertical, de bas en haut */
    .marque-ver {
      position:relative;
      max-width: 30em;
      height:6em;
      margin: 2em auto;
      border: 10px solid #F0F0FF;
      overflow: hidden;
      box-shadow: 0 .25em .5em #CCC,inset 0 0 1em .25em #CCC;
    }
    .marque-ver > div {
      position:relative;
      padding: 2em;
      padding-top: 6em; /* meme que height du parent */
      animation: defilement-ver 10s infinite linear;
      cursor: pointer;
    }
    .marque-ver:hover > div {
      animation-play-state: paused;
    }
    .msg {
      font-size: 1.5em;
      line-height: 1.5em;
    }
    .msg:first-letter {
      font-weight: 700;
      color: #F00;
    }
    @keyframes defilement-ver {
      0% {
        transform: translate3d(0,0,0);
      }
      100% {
        transform: translate3d(0,-100%,0);
      }
    }
    /* ---------------- */
    Remarque : la vitesse de défilement va dépendre du nombre de lignes de texte (puisque c'est sa hauteur qui est prise en compte).
    Dernière modification par Invité ; 26/09/2018 à 12h43.

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Ce serait bien que tu affiches dans la page démo aussi le code HTML + CSS.
    Je fais ce que je veux avec mes sources


    Notamment pour les débutants : ça éviterait d'avoir à chercher dans le code source.
    Un minimum de recherche n'a jamais fait de mal à personne et je dirais même que c'est d'autant plus vrai pour les débutant

    Ceci étant plus sérieusement, cette page fait partie de la dizaine de pages que j'ai en souffrance depuis le début de l'année ... alors dès que j'aurais vraiment du temps j'essaierais de la finaliser suivant mon schéma habituel.

    Pour info j'ai également le déplacement vertical

  13. #13
    Invité
    Invité(e)
    Par défaut
    Mea culpa !

    Je n'avais pas vu toutes tes sources (CSS) !
    Beau travail, et très détaillé.

    Chapeau.



    Comme disais mon grand-père :
    "Je n'ai rien dit avant de parler"

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Salut,

    Super, merci beaucoup, cela fonctionne très bien

  15. #15
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par Crachover Voir le message
    J'aimerais pouvoir :
    [*]Faire défiler un texte, (source : *.txt) de bas en haut, style générique de film dans une box (<div>) avec possibilité de choisir la taille du texte, la couleur, la couleur de fond de la zone de défilement, que le texte passe à la ligne automatiquement si la box ne permet pas un affichage en une ligne etc...
    J'avais vu ce truc la un jour, puis je viens de madire que c'est pile poil ce que tu recherche
    ==> https://codepen.io/thatbram/pen/KuHsl
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Je créé mes pages, je test sur mon pc, tout est nickel, même avec un include PHP... je lance la page sur ma SMART TV et là.... rien, snif, le code de NoSmoking ne fonctionne pas sur une SMART TV... le texte n'apparait pas, pourquoi ????

    Pour info :
    un petit exemple, sur ma SMART TV Samsung la déclaration des variables LET ne fonctionne pas, je dois obligatoirement mettre VAR...

    Une idée ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Crachover Voir le message
    ...sur ma SMART TV Samsung la déclaration des variables LET ne fonctionne pas, je dois obligatoirement mettre VAR...
    Oui, on avait déjà vu ça (dans une autre discussion).

    Peux-tu re-montrer ton code ?

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Salut,

    Voici...

    messageiframe.php
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="css.css"/>
    <title>Message</title>
    </head>
    <body>
    <div class="marque-rtl">
    <div id="messageii" class="msg"><?php include('Classeur1.txt'); ?></div>
    </body>
    </html>


    css.css
    Code css : 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
    /* texte défilant, de droite vers la gauche, avec départ du texte à droite de la fenêtre de défilement */
    /* le block conteneur */
    body
    {
      background-color: black; /* Le fond de la page sera noir */
      color: #A6A6A6; /* Le texte de la page sera blanc */
    }
    .marque-rtl {
      max-width: 296px;
      border: 1px solid #A6A6A6;
      overflow: hidden;
    }
    .marque-rtl > div {
      display: inline-block;
      padding-right: 296px;
      padding-left: 296px;
      white-space: nowrap;
      animation: defilement-rtl 15s infinite linear;
      cursor: pointer;
    }
    .msg {
      font-size: 16px;
      line-height: 25px;
    }
    @keyframes defilement-rtl {
      0% {
        transform: translate3d(0,0,0);
      }
      100% {
        transform: translate3d(-100%,0,0);
      }
    }
    Classeur1.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vous pouvez écrire içi ... :-) un texte... blablabla...
    Code iframe de ma page index.htm
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span style='mso-ignore: vglayout; position: absolute; z-index: 2; margin-left: 18px; margin-top: 260px; left: 890px; top: 355px;'><div>
    <iframe id="messagei" name="messagei" title="messagei" src="messageiframe.php" frameborder=0  height=91px width=100% scrolling="No" marginheight="0" marginwidth="0"></iframe></div></span>

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je doute que ta SMART TV interprète le PHP.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    si... en tapant ce code, le texte est bien affiché sur la SMART TV... c'est à mon avis au niveau des animations...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Test PHP Smart TV</title>
    </head>
    <body>
    <?php include('Classeur1.txt'); ?>
    </body>
    </html>

Discussions similaires

  1. Faire défiler un texte dans un label
    Par FluidBlow dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/10/2006, 20h32
  2. Faire défiler un texte au passage de la souris
    Par krolineeee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/06/2006, 12h00
  3. [FLASH 8] Faire défiler du texte avec un scrollbar
    Par crush09 dans le forum Flash
    Réponses: 3
    Dernier message: 04/04/2006, 12h25
  4. Faire défiler un texte dans une cellule de tableau
    Par Furius dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 01/12/2005, 17h06
  5. Faire défiler un texte sur une fenêtre
    Par Crisanar dans le forum Windows
    Réponses: 15
    Dernier message: 24/11/2004, 23h05

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