Partage
  • Partager sur Facebook
  • Partager sur Twitter

[js] Problème avec l'ajout d'attribut dans un div

Niveau amateur

    6 août 2009 à 21:08:26

    Bonjour,

    Je fais un script qui permet d'afficher progressivement le "alt" d'une image quand la souris va dessus, ou de "désafficher" cela.

    Pour cela, je fais un script qui s'actionne 3 secondes après le début du chargement de la page (pour la laisser se charger, j'ai pas trouvé mieux :-° ). Puis, je copie les "alt" dans des div qui font se placer exactement au même niveau que l'image.

    Cependant, ça ne fonctionne pas.

    Voici le code (les \, c'est parce que je travaille en PHP) :
    //<![CDATA[
     var timer;
    var xOpacity = 0;
    var i = 0;
    var j=0;
    var obj;
    var id;
    var array = new Array();
    timer = setInterval("iniImg()", 3000);
    function iniImg ()
    {
    	clearInterval(timer);
    	array = document.getElementsByTagName(\'img\');
    	for(i=0;i<array.length;i++)
    	{
    		var texte = document.createElement("div");
    		id = texte.setAttribute("id","id"+i);
    		if(document.all) 
    		{
    			array[i].attachEvent("onmouseover",function(){ apparaitre("id"+i) });
    			array[i].attachEvent("onmouseout",function(){ disparaitre("id"+i) });
    			texte.cssText("style", "height: "+array[i].offsetHeight+"; width: "+array[i].offsetWidth+"; margin-top: -"+array[i].offsetWidth+"; z-index: "+eval(array[i].zIndex+1)+";");
    		}
    		else 
    		{
    			array[i].addEventListener("mouseover",function(){  apparaitre("id"+i) },true);
    			array[i].addEventListener("mouseout",function(){ disparaitre("id"+i) },true);
    			texte.setAttribute("style", "height: "+array[i].offsetHeight+"; width: "+array[i].offsetWidth+"; margin-top: -"+array[i].offsetWidth+"; z-index: "+eval(array[i].zIndex+1)+";");
    		}
    		texte.className = "titre";
    		texte.appendChild(document.createTextNode(array[i].alt));
    		var parent = array[i].parentNode;
    		parent.appendChild(texte);
    	}
    }
    function disparaitre(id)
    {
    	clearInterval(timer);
    	xOpacity = 0;
    	obj = document.getElementById(id);
    	obj.style.opacity = xOpacity;
    	obj.style.MozOpacity = xOpacity;
    	obj.style.KHTMLOpacity = xOpacity;
    	obj.style.filter = \'alpha(opacity=\' + (xOpacity*100) + \')\';
    }
    
    function visible ()
    {
    	if(xOpacity>1)
    	{
    		clearInterval(timer);
    	}
    	xOpacity += 0.1;
    	obj.style.opacity = xOpacity;
    	obj.style.MozOpacity = xOpacity;
    	obj.style.KHTMLOpacity = xOpacity;
    	obj.style.filter = \'alpha(opacity=\' + (xOpacity*100) + \')\';
    
    }
    function apparaitre(id)
    {
    	obj = document.getElementById(id);
    	clearInterval(timer);
    	xOpacity = 0;
    	timer = setInterval("visible(obj)", 50);
    }
    
    	   //]]>">
    


    Le code source (obtenu avec Firebug) :
    <img width="340" height="227" src="y_etiez_vous/camp-2009/rasso-general.jpg" alt="Les jeannettes aux rassemblement général"/>
    <div id="id13" class="titre" style="">Les jeannettes aux rassemblement général</div>
    


    Le code erreur javascript :
    Erreur : obj is null
    Fichier Source : http://www.scouts-saint-benoit.org/articles/articles.php?id=619
    Ligne : 132



    Merci de votre aide !
    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2009 à 21:44:16

      Tu as raté ta balise code. (Et pas besoin de mettre en secret)
      • Partager sur Facebook
      • Partager sur Twitter
        6 août 2009 à 22:24:50

        D'accord merci. Je préfère le mettre en secret pour que ça ne prenne pas trop de place. C'est plus agréable à lire comme ça.
        • Partager sur Facebook
        • Partager sur Twitter

        [js] Problème avec l'ajout d'attribut dans un div

        × 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