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 : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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...
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    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 : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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);
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    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 : 48
    Localisation : France

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

    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    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 : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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.
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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..
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    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 : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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.
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    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 : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Points : 58
    Points
    58
    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.
    Pas facile la programmation avec les Zhommes ! Vous êtes durs avec nous
    Mon PC est un homme, jen ai fait l'expérience
    Je déplore les critiques du type: c'est pas beau, j'aime pas, c nul. Elles non rien de constructives et n'aident pas aux résolutions des problèmes rencontrés .

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