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 au passage de la souris


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut Faire défiler un texte au passage de la souris
    Bonjour,

    Voilà j'ai pour but d'afficher une ligne dans un tableau d'une largeur prédéfinie, de 150px par exemple, mon texte ne doit pas aller à la ligne, par contre, lorsque l'on passe la souris dessus, j'aimerai faire défiler le texte pour qu'on puisse tout lire, cette option se désactiverait quand on retirerai la souris bien entendu...

    Pour l'instant je patoge un peu et ce n'est pas concluant mais voici mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var contenu;
    function defile_text(id){
        var obj = document.getElementById(id);
        contenu = obj.innerHTML;
        obj.innerHTML = '<font color=white><marquee style="font-size:14px;color:#FFFFFF;" width=150 LOOP=-1>'
        +contenu+'</marquee></font>'; 
    }
    function fige_text(id){
        var obj = document.getElementById(id);
        obj.innerHTML = contenu;
        contenu='';
    }
    et une ligne de code html pour l'appel des fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div style='width:150px;height:18px;overflow-y:hidden;overflow-x:hidden;' id='LSTXLS' 
    onMouseOver='defile_text(this.id);' onMouseOut='fige_text(this.id);'>
    Voiciiiii une longuuuuuuueeeeee lignnnnnnnnnnnnnnneeeeeeeeeeeeeeeeeee
    </div>
    Si quelqu'un a une petite idée, qu'il pense à moi

    Merci d'avance

    Le développement est un art capilotracté
    .____________________________________
    | SGBDR : Oracle 8
    | PHP Version 5.0.4
    | SERVEUR Apache 2.0 hébergé par Linux (Fédora)
    | C++ sous visual studio 6
    | JAVA sous JBuilder2006 Entreprise
    |____________________________________

  2. #2
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Personne n'a d'idée?
    ça n'arrange point mes affaires ça

    Le développement est un art capilotracté
    .____________________________________
    | SGBDR : Oracle 8
    | PHP Version 5.0.4
    | SERVEUR Apache 2.0 hébergé par Linux (Fédora)
    | C++ sous visual studio 6
    | JAVA sous JBuilder2006 Entreprise
    |____________________________________

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    j'ai essayé ton script. J'ai tenté de l'améliorer sans succès (tu as oublié certains paramètres de la balise marquee : scrolldelay, behavior, scrollamount, etc..).

    Je te propose une alternative, ce n'est pas le top mais c'est déjà ça :

    Code : 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
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    div{
    overflow: hidden;
    width: 200px;
    }
    table td{
    border: 2px solid #AAAAAA;
    padding: 5px;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
     
    var depart, pos, W, chrono=null, elmtScroll=null, over=false, pas=2;
    var tpsPause=2000;  /*en ms */
    var tps=50;         /*en ms */
    function pause() /*Pause avant un nouveau depart*/
    {
      pos = depart;
      chrono = setInterval("scrollTxt()",tps);
    }
     
    function scrollTxt() /*Defilement */
    {
      pos=pos+pas;
      elmtScroll.scrollLeft = pos;
      if (pos>=W) /*stop défilement et pause avant nouveau depart*/
      {
       clearInterval(chrono);
       chrono = setTimeout("pause()",tpsPause);
      }
    }
     
    function MouseOver(obj) /*demarrage du defilement*/
    {
     if (!over) /*1 evenement over a la fois*/
     {
      elmtScroll = obj;
      depart = elmtScroll.scrollLeft;
      pos = depart;
      W = parseInt(elmtScroll.scrollWidth-elmtScroll.clientWidth);
     
      chrono = setInterval("scrollTxt()",tps);
      over = true;
     }
    }
     
    function MouseOut(obj) /*mouseout, on autorise un nouveau mouseover*/
    {
     over = false;
     clearInterval(chrono); /*stop defilement*/
     chrono = null;
     elmtScroll.scrollLeft = depart; /*position de depart du texte*/
    }
     
    function quitter() /*arret du chrono lors de la fermeture de la page*/
    {
     if (chrono!=null)
       clearInterval(chrono);
    }
    //-->
    </script>
     
    <head>
    </head>
     
    <body onunload="quitter()">
    <table>
      <tr>
        <td>
        <div onmouseover="MouseOver(this)" onmouseout="MouseOut(this)">
        <nobr>un tres tres tres looooooooooooooooooooooooooooooooong texte</nobr>
        </div>
        </td>
        <td>
        bla bla bla bla bla
        </td>
      </tr>
      <tr>
        <td>
        bla bla bla bla bla
        </td>
        <td>
        <div onmouseover="MouseOver(this)" onmouseout="MouseOut(this)">
        <nobr>un tres tres tres looooooooooooooooooooooooooooooooong texte</nobr>
        </div>
      </tr>
    </table>
    </body>
     
    </html>
    le <nobr> évite le retour à la ligne du texte

  4. #4
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Et bien je te remercie, je vais voir pour adapter celà à mon code mais à priori il ne devrai pas y avoir trop de problème, tu me retire une belle épine du pied.

    Merci beaucoup pour ton aide!

    Le développement est un art capilotracté
    .____________________________________
    | SGBDR : Oracle 8
    | PHP Version 5.0.4
    | SERVEUR Apache 2.0 hébergé par Linux (Fédora)
    | C++ sous visual studio 6
    | JAVA sous JBuilder2006 Entreprise
    |____________________________________

  5. #5
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    hi !
    oublié le tag Résolu ?!?
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb.net 1.1] faire défiler du texte
    Par malhivertman1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/11/2006, 11h05
  2. Faire défiler un texte dans un label
    Par FluidBlow dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/10/2006, 20h32
  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