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 :

Mon script ne marche pas :(


Sujet :

JavaScript

  1. #1
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut Mon script ne marche pas :(
    Bonjour,

    J'ai modifié un script que j'ai trouvé pour pouvoir l'utiliser plusieurs fois.

    Mais je vois pas ou est l'erreur:

    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
    var defile;// l'element a deplacer
    var psinit = 400; // position Verticale de depart fonction du Height de la Div.
    var pscrnt = psinit;
    var texteDefile1('defile_logos');
    var texteDefile2('defile_who');
     
    function defile(texteDefile1,textDefile2) {
       if (!defile) defile = document.getElementById(defile);
       if (defile)
       {
          if(pscrnt < ( - defile.offsetHeight))
    	  	{
             pscrnt = psinit;
            } else
    		{
             pscrnt+= -1; // pixel par deplacement
          	}
          defile.style.top = pscrnt+"px";
       }
    }
    var timer = setInterval("texteDefile()",30); // delai de deplacement
    et le CSS:

    <
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    div id="conteneur_logos">
    <span id="defile_logos" onmouseover="clearInterval(timer)" onmouseout='timer=setInterval("texteDefile()",30)'>
    <?php include_once("partenaires/logos.htm"); ?></span>
    </div>
    <div id="conteneur_who">
    <span id="defile_who" onmouseover="clearInterval(timer)" onmouseout='timer=setInterval("texteDefile()",30)'>
    <?php include_once('php/external.php'); ?>Lorem ipsum dolor sit amet
    Consectetuer et vel id condimentum
    </span>
    </div>
    C'est dur d'avoir de l'aide ici...

  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
    bonjour,

    rapidement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var defile;// l'element a deplacer
     
    function defile(...)
    {
     
    }
    tu as une variable et une fonction qui ont le même nom, cela prète à confusion...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var texteDefile1('defile_logos');
    var texteDefile2('defile_who');
    euh.... curieux des variables qui prennent des paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var timer = setInterval("texteDefile()",30); // delai de deplacement
    où se trouve la fonction texteDefile() ?

  3. #3
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    là c mieux mais ça ne marche pas :

    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
    var defile;// l'element a deplacer
    var psinit = 400; // position Verticale de depart fonction du Height de la Div.
    var pscrnt = psinit;
    texteDefile1('defile_logos');
    texteDefile2('defile_who');
     
    function Tdefile(texteDefile1,texteDefile2) {
       if (!defile) defile = document.getElementById(defile); ici ya un truc qui passe pas !
       if (defile)
       {
          if(pscrnt < ( - defile.offsetHeight))
    	  	{
             pscrnt = psinit;
            } else
    		{
             pscrnt+= -1; // pixel par deplacement
          	}
          defile.style.top = pscrnt+"px";
       }
    }
    var timer = setInterval("Tdefile()",30);

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Bonjour,

    ici ya un truc qui passe pas !
    Où est initialisée ta variable "defile" ?
    Comment est appelée ta fonction ?
    Ca ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var texteDefile1 = 'defile_logos';
    var texteDefile2 = 'defile_who';
    ???

  5. #5
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Salut,
    ici si je me trompe pas:


  6. #6
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    [QUOTE=Auteur]bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var texteDefile1('defile_logos');
    var texteDefile2('defile_who');
    euh.... curieux des variables qui prennent des paramètres

    Ben je sais pas j'ai enlever var suite au commentaires de Auteur.

    Je suis nule en javascript

  7. #7
    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
    Citation Envoyé par Diabless6
    Salut,
    ici si je me trompe pas:

    il y a une différence entre initialiser et définir une variable. Ici elle est définie mais pas initlialisée.


    getElementById() prend comme paramètre l'id d'un élement.

    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
     
    var defile = null;
    var psinit = 400; // position Verticale de depart fonction du Height de la Div.
    var pscrnt = psinit;
    texteDefile1 = 'defile_logos';
    texteDefile2 = 'defile_who';
     
    function Tdefile(texteDefile1,texteDefile2) {
       if (defile==null) 
           defile = document.getElementById("defile_logos"); 
     
       if (defile!=null)
       {
          if(pscrnt < ( - defile.offsetHeight))
    	  	{
             pscrnt = psinit;
            } else
    		{
             pscrnt+= -1; // pixel par deplacement
          	}
          defile.style.top = pscrnt+"px";
       }
    }
    var timer = setInterval("Tdefile()",30);

  8. #8
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    Arf je dis dit rien sur définir et initialisé je confons avec le php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function Tdefile(texteDefile1,texteDefile2) {
       if (defile==null)
           defile = document.getElementById("defile_logos");
            defile = document.getElementById("defile_who");
    J'ai rajouté defile_who, mais le 1er ne défile plus ! Faut rajouter un condition ?
    Plutot l'inclure mais je sais pas en javascript.

  9. #9
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    zut...

    var psinit = 400; la hauteur des div étant différentes c pas bon ça.

    rhoo nonnnn

    Bon ben je vais faire 2 scripts différents, sinon ça va être un casse tête encore..

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Soit tu en fais 2, soit tu fais les 2 dans une seule fonction mais il faut effectivement dupliquer :

    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
    var defileElement1 = null; // le 1er element
    var defileElement2 = null; // le 2eme element
    var psinitElement1 = null // position Verticale de depart fonction du Height de la Div du 1er element
    var psinitElement2 = null // position Verticale de depart fonction du Height de la Div du 2eme element
     
    // En dessous tu initialises toutes les variables
    texteDefile1 = 'defile_logos'; // id du 1er element a deplacer
    psinitElement1 = ? // position de depart du 1er element, c'est toi qui sait
    texteDefile2 = 'defile_who'; // id du 2eme element a deplacer
    psinitElement2 = ? // position de depart du 2eme element, c'est toi qui sait encore
     
    // Au tout debut la position courante des elements est la position initiale
    var pscrntElement1 =  psinitElement1;
    var pscrntElement2 =  psinitElement2;
     
     
    function Tdefile(texteDefile1,texteDefile2) {
     
    // initialisation de defileElement1 si ça n'a pas ete fait (1er appel donc)
       if (defileElement1 == null) 
           defileElement1 = document.getElementById(texteDefile1); 
     
    // initialisation de defileElement2 si ça n'a pas ete fait (1er appel egalement)
       if (defileElement2 == null) 
           defileElement = document.getElementById(texteDefile2); 
     
     
       if (defileElement1 !=null && defileElement2 != null) {// on verifie que tout a bien ete initialise
     
    // traitement pour l'element 1
          if(pscrntElement1 < ( - defileElement1.offsetHeight)) { // si l'element 1 a atteint "le bord" la position courante redevient la position initiale
             pscrntElement1 = psinitElement1; 
          } else { // sinon la position courante est l'ancienne position courante - 1 pixel
             pscrntElement1 += -1; // pixel par deplacement
          }
          defileElement1.style.top = pscrntElement1 +"px"; // on affecte cette position a l'element
     
    // traitement pour l'element 2 (idem)
          if(pscrntElement2 < ( - defileElement2.offsetHeight)) {
             pscrntElement2 = psinitElement2;
          } else {
             pscrntElement2 += -1; // pixel par deplacement
          }
          defileElement2.style.top = pscrntElement2 +"px";
       }
    }
    var timer = setInterval("Tdefile()",30); // appel toutes les 30 ms

  11. #11
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    ouaff c super complexe comme ça

    moi je cherche dans cette direction, mais c pas bon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Tdefile(texteDefile,texteDefile2) {
       if (defile==null)
           defile = document.getElementById("defile_logos","defile_who");
    ensuite la valeur var psinit = 400; faut que je la mette en x% des 2 div différentes c plus facile comme ça.

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Tu trouves ? C'est parce qu'il y a bcp de commentaires, je n'ai fais que dupliquer le code.

    Alors juste 2 conseils.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function Tdefile(texteDefile,texteDefile2) {
    Si tu choisis d'initialiser tes variables directement dans le code de la fonction, inutile de faire style qu'elle accepte des paramètres puisque tu ne les lis pas

    Autant écrire :

    Ensuite,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    defile = document.getElementById("defile_logos","defile_who");
    ça ne peut pas marcher puisque tu donnes 2 id or defile sert à identifier 1 seul élément.

  13. #13
    Inactif   Avatar de Diabless6
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    mouai, je reste dubitative quand même, je suis sûr que l'on peut faire plus simple.

    Ya beaucoup de code qui sont écrit de façon midi-à-14-heure. Hors on s'aperçoit rapidement que l'on peut faire encore plus simple et donc cela permet
    ainsi de faire evoluer le code plus facilement.

Discussions similaires

  1. Réponses: 26
    Dernier message: 23/05/2010, 18h55
  2. Mon script ne marche pas sur IE7
    Par Théo92 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/09/2008, 13h19
  3. Pourquoi mon script ne marche pas ?
    Par chrifus dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2008, 18h04
  4. Pourquoi mon script ne marche pas?
    Par amarcil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/05/2006, 21h37
  5. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26

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