begin process at 2012 05 29 04:46:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Décalage Infobulle sur IE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Décalage Infobulle sur IE

samedi 31 mai 2008 à 08:07:52 | Décalage Infobulle sur IE

jeanmarc1234

Bonjour,
Avant toute chose je code en aspx mais j'ai du récupérer un script qui permet de charger une image dans un infobulle.
Sur Mozilla aucun souci le problème viens de IE je m'explique.

Sur une page sans masterpage IE répond correctement, par contre si j'utilise un masterpage l'infobulle se décalle.

Pour comprendre mieux le problème voici les liens test.

Page sans masterpage : http://www.boolo.fr/test.aspx

Page avec masterpage : http://www.boolo.fr

voici le code de la masterpage le CSS ainsi que le fichier javascript.

Merci d'avance de votre aide car niveau javascript je ne suis pas vraiment au top.

[CODE]
<%@ Master Language="VB" CodeFile="test.master.vb" Inherits="test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script type="text/javascript" language="javascript" src="js/infobulle.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="border:1px solid black; width:950px; height:100px; margin-left:auto; margin-right:auto">
    Header
    </div>   
    <div class="page">
    <div id="sidebarleft">
        <div class="onglet200Connection">
        </div>
        <div class="sousOnglet">
       
        </div>
    </div>
    <div id="sidebarright">
        <div class="onglet200Connection">
        </div>
        <div class="sousOnglet">       
    <a href="#"
onmouseover="showTooltip('<div class=\'info\'><strong>Logo de presentation</strong><br />et on peut changer de foto<br /><img id=\'big\' src=\'piece.jpg\'></div>');"
onmouseout="hideTooltip()"><img id="big" src="piece.jpg" onmouseout="hideTooltip()" /></a>
        </div>
    </div>
    <div id="content">
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
       
        </asp:ContentPlaceHolder>
    </div>
    <div class="spacer"></div>
    <div class="footer">
    Footer
    </div>
    </div>
    </form> 
<div id="bulle"></div> 
</body>
</html>
[\CODE]

[CODE]
img
{
    border:none;
}

#bulle
{
    position: absolute;
    visibility: hidden; 
    font-size:12px;
}


.info
{
    border:1px solid #666666;
    padding: 2px;
    color:#666666;
    background-color:#FFFFFF;}
[\CODE]
[CODE]
var xOffset=6
var yOffset=5

var affiche = false; // La variable i nous dit si le bloc est visible ou non
var w3c=document.getElementById && !document.all;
var ie=document.all;

if (ie||w3c) {
var laBulle
}

function ietruebody(){ // retourne le bon corps...
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function deplacer(e) {
if(affiche){
var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;

var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;

var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000

// modifier la largeur de l'objet s'il est trop grand...
if(laBulle.offsetWidth > winwidth / 3){
laBulle.style.width = winwidth / 3
}

// si la largeur horizontale n'est pas assez grande pour l'info bulle
if(rightedge < laBulle.offsetWidth){
// bouge la position horizontale de sa largeur à gauche
laBulle.style.left = curX - laBulle.offsetWidth + "px"
} else {
if(curX < leftedge){
laBulle.style.left = "5px"
} else{
// la position horizontale de la souris
laBulle.style.left = curX + xOffset + "px"
}
}

// même chose avec la verticale
if(bottomedge < laBulle.offsetHeight){
laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px"
} else {
laBulle.style.top = curY + yOffset + "px"
}
}
}
function showTooltip(text) {
if (w3c||ie){
laBulle = document.all ? document.all["bulle"] : document.getElementById ? document.getElementById("bulle") : ""
laBulle.innerHTML = text; // fixe le texte dans l'infobulle
laBulle.style.visibility = "visible"; // Si il est cachée (la verif n'est qu'une securité) on le rend visible.
affiche = true;
}
}
function hideTooltip() {
if (w3c||ie){
affiche = false
laBulle.style.visibility="hidden" // avoid the IE6 cache optimisation with hidden blocks
laBulle.style.top = '-100000px'
laBulle.style.backgroundColor = ''
laBulle.style.width = ''
}
}

document.onmousemove = deplacer; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
[\CODE]

samedi 31 mai 2008 à 08:28:56 | Re : Décalage Infobulle sur IE

PetoleTeam

Membre Club
Bonjour,
difficile à dire à brute mais je te conseil de regarder
<PUB>
INFO BULLE COMPATIBLE SELECT ET DOCTYPE
ou encore pour la position de la souris
POSITION DE LA SOURIS DANS LA PAGE
</PUB>
;O)
samedi 31 mai 2008 à 08:56:38 | Re : Décalage Infobulle sur IE

PetoleTeam

Membre Club
Réponse acceptée !
Après un frugal petit déjeuner et une analyse du script il te faut remplacer...
var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;

par
var curX = (w3c) ? e.pageX : event.clientX + ietruebody().scrollLeft;
var curY = (w3c) ? e.pageY : event.clientY + ietruebody().scrollTop;


;O)
samedi 31 mai 2008 à 09:00:48 | Re : Décalage Infobulle sur IE

jeanmarc1234

Merci à toi !

en effet tout tourne correctement avec ta modif.

Cool merci encore !




Cette discussion est classée dans : style, ie, var, document, labulle


Répondre à ce message

Sujets en rapport avec ce message

Pb avec IE [ par Thiman ] j'ai mis ce script d'info-bulle, trouver sur internet. Il fonctionne parfaitement sur Firefox et Opéra mais problème avec IE. Pourriez-vous me venir e Dimension d'un div de façon dynamique [ par hawks_ttf ] Bonjour tout le mondeJe cherche le moyen d'avoir dynamiquement les dimensions d'un div...J'ai essayé document.getElementbyID(IDdiv).offsetWidth et .of Probleme affichage infobulle calendrier avec IE mais pas avec firefox [ par ishanshade ] Bonjour à tousJe fais un site internet pour la FAC sur un sujet bien précis : les mangasPour ce site,j'ai voulu incorporer un calendrier avec infobull Comment récupérer le style d'un élément ? [ par eplanet ] Bonjour à tous, J'essaie d'écrire script qui insère une image dans le document HTML et qui récupère ensuite sa position absolue.Voici mon script (simp Probleme de positionnement de mon menu [ par skippy729 ] Bonjour, je voudrais utiliser ce script afin d'inserer un menu sur mon site, seulement lorsque je teste ce script, le menu se retrouve en haut a gauch Opacity d'une info bulle [ par lesenbei ] Je voulais savoir comment modifier l'opacité d'une info bulleVoila mon code :var ie = (document.all);var ne = (document.layers); var fenetre = (ne) ? Deux javascripts identique dans une même page [ par guerrilleur ] Voila je voudrai avoir de fois le même javascript sur ma page. voici mon code actuel: [code=html] --> /*************** remettre des input radio à vide [ par joujma5 ] bonjour j'ai un bout de code qui me gène je veux bien remettre les input radio vides(!=checked) on rafraîchissant la page web.voici le code: funct Aide pour faire une boucle [ par nel_sim ] Bonjour ! Je débute en Javascript, c'est pour cela que j'ai besoin de vous ! En fait j'aimerai faire une boucle avec for ou while, mais je ne sais pa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales