Partage
  • Partager sur Facebook
  • Partager sur Twitter

2 scripts en conflits

Sujet résolu
    1 décembre 2010 à 11:07:35

    Bonjour a tous,
    alors voila depuis longtemps j'ai un script pour les infobulles le voici :

    <!--
    				function GetId(id)
    				{
    				return document.getElementById(id);
    				}
    				var i=false; // La variable i nous dit si la bulle est visible ou non
    				
    				function move(e) {
    				  if(i) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
    				    if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
    				    GetId("curseur").style.left=e.pageX + 5+"px";
    				    GetId("curseur").style.top=e.pageY + 10+"px";
    				    }
    				    else { // Modif proposé par TeDeum, merci à lui
    				    if(document.documentElement.clientWidth>0) {
    				        GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px";
    				        GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px";
    				    }
    				    else {
    				        GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px";
    				        GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px";
    				    }
    				    }
    				  }
    				}
    				
    				function montre(text) {
    				  if(i==false) {
    				  GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
    				  GetId("curseur").innerHTML = text; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
    				  i=true;
    				  }
    				}
    				function cache() {
    				if(i==true) {
    				GetId("curseur").style.visibility="hidden"; // Si la bulle etais visible on la cache
    				i=false;
    				}
    				}
    				document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
    				//-->
    



    Et pour noel j'ai décidé de rajouter un script qui fait descendre des flocons :
    var SNOW_Picture = "scripts/snow.gif";
    var SNOW_no = 20;
    
    var SNOW_browser_IE_NS = (document.body.clientHeight) ? 1 : 0;
    var SNOW_browser_MOZ = (self.innerWidth) ? 1 : 0;
    var SNOW_browser_IE7 = (document.documentElement.clientHeight) ? 1 : 0;
    
    var SNOW_Time;
    var SNOW_dx, SNOW_xp, SNOW_yp;
    var SNOW_am, SNOW_stx, SNOW_sty; 
    var i, SNOW_Browser_Width, SNOW_Browser_Height;
    
    if (SNOW_browser_IE_NS)
    {
    	SNOW_Browser_Width = document.body.clientWidth;
    	SNOW_Browser_Height = document.body.clientHeight;
    }
    else if (SNOW_browser_MOZ)
    {
    	SNOW_Browser_Width = self.innerWidth - 20;
    	SNOW_Browser_Height = self.innerHeight;
    }
    else if (SNOW_browser_IE7)
    {
    	SNOW_Browser_Width = document.documentElement.clientWidth;
    	SNOW_Browser_Height = document.documentElement.clientHeight;
    }
    
    
    SNOW_dx = new Array();
    SNOW_xp = new Array();
    SNOW_yp = new Array();
    SNOW_am = new Array();
    SNOW_stx = new Array();
    SNOW_sty = new Array();
    
    for (i = 0; i < SNOW_no; ++ i) 
    { 
    	SNOW_dx[i] = 0; 
    	SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-50);
    	SNOW_yp[i] = Math.random()*SNOW_Browser_Height;
    	SNOW_am[i] = Math.random()*20; 
    	SNOW_stx[i] = 0.02 + Math.random()/10;
    	SNOW_sty[i] = 0.7 + Math.random();
    	if (i == 0) document.write("<\div id=\"SNOW_flake"+ i +"\" style=\"position: absolute; z-index: "+ i +"; visibility: visible; top: 15px; left: 15px;\"><a href=\"http://www.peters1.dk\" target=\"_blank\"><\img src=\""+SNOW_Picture+"\" border=\"0\"></a><\/div>");
    	else document.write("<\div id=\"SNOW_flake"+ i +"\" style=\"position: absolute; z-index: "+ i +"; visibility: visible; top: 15px; left: 15px;\"><\img src=\""+SNOW_Picture+"\" border=\"0\"><\/div>");
    }
    
    function SNOW_Weather() 
    { 
    
    for (i = 0; i < SNOW_no; ++ i) 
    { 
    	SNOW_yp[i] += SNOW_sty[i];
    
    	if (SNOW_yp[i] > SNOW_Browser_Height-50) 
    	{
    		SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-SNOW_am[i]-30);
    		SNOW_yp[i] = 0;
    		SNOW_stx[i] = 0.02 + Math.random()/10;
    		SNOW_sty[i] = 0.7 + Math.random();
    	}
    
    	SNOW_dx[i] += SNOW_stx[i];
    
    	document.getElementById("SNOW_flake"+i).style.top=SNOW_yp[i]+"px";
    	document.getElementById("SNOW_flake"+i).style.left=SNOW_xp[i] + SNOW_am[i]*Math.sin(SNOW_dx[i])+"px";
    }
    
    SNOW_Time = setTimeout("SNOW_Weather()", 10);
    
    }
    
    SNOW_Weather();
    


    Mais voila maintenant lorsque la neige tombe cela empêche l'infobulle d'apparaitre mais pourquoi :( ?

    Merci pour vos conseil
    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2010 à 11:38:56

      Tu as surement des variables qui ont le même nom.

      Renommes les.

      Tu peux déjà commencer par regarder du côté de i.
      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2010 à 11:57:52

        Ben i est initialiser ici pour les flocons:

        for (i = 0; i < SNOW_no; ++ i)

        Et pour l'info bulle ici :
        var i = false;
        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2010 à 12:02:32

          Citation

          Ben i est initialiser ici pour les flocons:

          for (i = 0; i < SNOW_no; ++ i)

          Et pour l'info bulle ici :
          var i = false;



          La variable i n'est pas locale mais globale, je n'ai pas de doute sur le fait que le problème vient en partie de là.

          As tu testé au moins ?
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2010 à 18:29:31

            En effet j'ai changer le nom de i et sa marche merci à vous :)
            • Partager sur Facebook
            • Partager sur Twitter

            2 scripts en conflits

            × 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