Partage
  • Partager sur Facebook
  • Partager sur Twitter

créer des layers en série

Sujet résolu
    30 juillet 2009 à 16:23:51

    Avec I.E. on n'obtient qu'un seul calque.
    Avec Firefox on obtient les 2,
    Que faire pour que I.E. accepte la boucle ?

    Maintenant il faut que je puisse remplir ces calques.
    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2009 à 16:37:21

      J'ai trouvé l'erreur : le deuxième backgroundColor dans le tableau de div c'est : ' #FFFF00'

      Et oui, vous ne revez pas, ça plante à cause de l'espace. Suffit de mettre '#FFFF00' et ça marche ! :p
      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2009 à 16:51:14

        Bravo k1rby. Tu es très fort !
        ça marche avec I.E.

        Je pense qu'on peut améliorer en mettant les données dans un tableau.
        Et ensuite comment mettre le texte dans chaque calque.
        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2009 à 16:55:00

          :euh:
          var calques=[{top:'10',left:'10',width:'20',height:'20',backgroundColor: '#FFFF00'},{top:'50',left:'50',width:'20',height:'20',backgroundColor:'#FFFF00'}], //un tableau contenant des objets au format JSON, j'ai mis des valeurs comme exemple, mets ce que tu veux
          

          Elles SONT dans un tableau... ;)
          Pour mettre le texte, faudrait rajouter un
          texte:'ce que tu veux' dans le tableau,
          puis dans la boucle, tu fais :
          div.innerHTML = calques[i].texte; // à la fin
          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2009 à 17:06:14

            Tout va bien.
            Quand je parlais de tableau, je pensais à une suite de nombre du genre:
            top(10,25,35,50) sans répéter chaque fois top.
            Et extraire par top(0), top(1) etc.. donc top(i).
            Est-ce possible ?
            • Partager sur Facebook
            • Partager sur Twitter
              31 juillet 2009 à 8:10:22

              Oui mais ça t'obliges alors à avoir un tableau pour chaque élément que tu voudras appliquer au div.

              Un tableau top, un tableau left, un table bgColor, un tableau texte, etc. Moi je trouve que ça fait beaucoup et qu'un tableau unique contenant du JSON c'est mieux.
              • Partager sur Facebook
              • Partager sur Twitter
                31 juillet 2009 à 8:29:47

                Bonjour,

                J'ai essayer ceci, mais ça ne marche pas :
                <SCRIPT LANGUAGE="JavaScript">
                
                window.onload=function() {
                
                var xTop=new Array;
                var xLeft=new Array;
                var xWidth=new Array;
                var xHeight=new Array;
                var xBgnd=new Array;
                
                var xTop=["100","100","100","100"];
                var xLeft=["100","200","200","400"];
                var xWidth=["100","100","100","100"];
                var xHeight=["100","100","100","100"];
                var xBgnd=["#00FFFF","#0000FF","#FF0000","#00FF00"];
                
                for(var i=0,count=calques.length;i<count;i++){
                	div=document.createElement('div');
                	div.style.position='absolute';
                	div.style.calques.top=xTop[i]+'px';
                	div.style.calques.left=xLeft[i]+'px';
                	div.style.calques.width=xWidth[i]+'px';
                	div.style.calques.height=xHeight[i]+'px';
                	div.style.calques.backgroundColor='backgroundColor'+xBgnd[i];
                	div.style.calques.zIndex='1';
                	div.id='layer_0'+(i+1);
                	div.innerHTML = calques[i].texte;
                	document.body.appendChild(div);
                }
                
                };
                </SCRIPT>
                


                Qu'en penses-tu ?
                • Partager sur Facebook
                • Partager sur Twitter
                  31 juillet 2009 à 8:40:04

                  Que div.style.calques ça n'existe pas, calques n'étant une propriété css, que tu utilises une variables calques qui n'existe pas, et pour finir qu'effectivement, utiliser une variable par truc c'est affreux °o°

                  Edit: et j'ai pas vu un dernier truc qui saute aux yeux : tu déclares tes variables 2 fois
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 juillet 2009 à 8:48:50

                    D'accord, j'ai faux.
                    Merci si tu peux me corriger ce script ?
                    (les paramètres sont plus faciles à lire et à changer, présentés ainsi)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 juillet 2009 à 8:53:06

                      Euuuh, si quelqu'un veux corriger, 'faut pas se gêner, mais moi je le ferai pas. On a fourni un code optimisé qui marche, je refuse de faire un truc moins bien >_<

                      Qui plus est en ayant à peine quelques connaissance en développement et en javascript (voire en sachant chercher sur google) tu devrais quand même pouvoir corriger ça tout seul
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 juillet 2009 à 10:08:00

                        window.onload=function() {
                        
                          var xTop=["100","100","100","100"];
                          var xLeft=["100","200","300","400"];
                          var xWidth=["100","100","100","100"];
                          var xHeight=["100","100","100","100"];
                          var xBgnd=["#00FFFF","#0000FF","#FF0000","#00FF00"];
                          var xText=["Salut","Super !","Yop !","SDZ"];
                        
                          for(var i=0,count=xTop.length;i<count;i++){
                            div=document.createElement('div');
                            div.style.position='absolute';
                            div.style.top=xTop[i]+'px';
                            div.style.left=xLeft[i]+'px';
                            div.style.width=xWidth[i]+'px';
                            div.style.height=xHeight[i]+'px';
                            div.style.backgroundColor=xBgnd[i];
                            div.style.zIndex='1';
                            div.id='layer_0'+(i+1);
                            div.innerHTML = xText[i];
                            document.body.appendChild(div);
                          }
                        
                        };
                        


                        Et maintenant, tu peux mettre ce sujet en résolu à l'aide du lien en bas de page.

                        Et je te conseille vivement d'aller apprendre le JS, parce que là, tes erreurs sont des erreurs de débutant ! Il faut remédier à ça !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 juillet 2009 à 14:57:30

                          Merci golmote de m'avoir donner un exemple que je peux étudier;
                          ça marche très bien et les paramètres sont plus lisibles que dans la version précédente.
                          Merci encore de ne pas m'avoir renvoyé sur Google où mes recherches n'avaient pas abouties. C'est bien à cela que servent les forums.
                          Il faut aussi peut-être excuser mes 87 ans ?
                          Cordialement.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          créer des layers en série

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown