Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème infobulle

(dépasse la page et affiche un scroll)

    12 novembre 2008 à 19:14:32

    Bonjour à tous et à toutes!

    Je rencontre actuellement un gros problème d'infobulle. Mon info bulle est trop important et le problème étant qu'elle dépasse l'écran sur la droite, et ça fait apparaitre un scroll..

    voici une image pour exposer un peu mieux le problème :
    <image>http://img255.imageshack.us/my.php?image=bughg6.jpg</image>

    Voici le code JS:
    /******************************************
    
    # Auteur : Julien Theler -  www.twiip.ch
    
    # Contact : julien.theler@twiip.ch
    
    # Licence : CC-by-nc
    
    ******************************************/
    
    
    
    function infobulle(element, text){
    
    	var is_ie = ((navigator.userAgent.toLowerCase().indexOf("msie") != -1) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1));
    
    	
    
    	//Suppression du title de l'élément pour éviter une superposition
    
    	element.title = '';
    
    	
    
    	//Création d'une div provisoire
    
    	var infobulle = document.createElement('div');
    
    	infobulle.style.position = 'absolute';
    
    	
    
    	document.onmousemove = function(e){
    
    		x = (!is_ie ? e.pageX : event.x+document.documentElement.scrollLeft);
    
    		y = (!is_ie ? e.pageY : event.y+document.documentElement.scrollTop);
    
    		infobulle.style.left = x+15+'px';
    
    		infobulle.style.top = y+15+'px';
    
    		infobulle.style.display = '';
    
    	}
    
    	infobulle.id = 'infobulle';
    
    	infobulle.innerHTML = text;
    
    	infobulle.style.display = 'none';
    
    	infobulle.style.opacity = '0';
    
    	infobulle.style.filter = 'alpha(opacity=0)';
    
    	document.body.appendChild(infobulle);
    
    
    
    	for(i=0; i<=100; i+=10){
    
    		var time = ((i/20)*30);
    
    		setTimeout('opacity('+i+', \'infobulle\');', time);
    
    	}
    
    
    
    
    
    	//Ajout de la fermeture lorsque la souris quitte l'élément
    
    	element.onmouseout = function(){
    
    		for(i=0; i<=100; i+=10){
    
    			var time = ((i/20)*30);
    
    			var opacity = (100-i);
    
    			setTimeout('opacity('+opacity+', \'infobulle\', 1);', time);
    
    		}
    
    	};
    
    	
    
    	//Fonction servant à faire varier l'opacité
    
    	opacity = function(opacity, id, close){
    
    			var infobulle = document.getElementById(id);
    
    			infobulle.style.opacity = (opacity/100);
    
    			infobulle.style.filter = 'alpha(opacity='+opacity+')';
    
    			if(opacity == 0 && close){
    
    				document.body.removeChild(infobulle); //Suppression de la div provisoire
    
    			}
    
    	}
    
    }
    

    (au passage de remercie Elias pour ce fabuleux script)

    Est il possible que la bulle s'affiche de façon a ce que ça n'affiche pas de scrol? Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      13 novembre 2008 à 19:24:27

      x = (!is_ie ? e.pageX : event.x+document.documentElement.scrollLeft);
      
      		y = (!is_ie ? e.pageY : event.y+document.documentElement.scrollTop);
      
      		infobulle.style.left = x+15+'px';
      
      		infobulle.style.top = y+15+'px';
      


      Mets une taille fixe.
      infobulle.style.left = '15px';
      infobulle.style.top = '15px';
      
      • Partager sur Facebook
      • Partager sur Twitter
        14 novembre 2008 à 13:45:39

        J'ai mis à jour le script : http://dev.twiip.ch/scripts/infobulle/
        Quand l'infobulle dépasse en largeur ou en hauteur la fenêtre, elle est affichée de l'autre côté (à gauche et/ou au-dessus de la souris).

        @Merwin : en mettant une taille fixe comme tu le proposais, l'infobulle apparaitrait toujours au même endroit en haut à gauche de la fenêtre, pas très esthétique :p
        • Partager sur Facebook
        • Partager sur Twitter

        Problème infobulle

        × 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