Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Javascript & XHTML Strict [ CSS / Général ] (plasticism)

mercredi 27 août 2008 à 01:42:25 | Javascript & XHTML Strict

plasticism

Bonjour,

je sèche depuis presque 2 jours sur ce script tout bête, adapté d'une source que j'ai pompé je-ne-sais-plus-où...
Il est sensé afficher une "bulle d'aide" (une div) qui suit la souris quand elle survole un objet particulier (ici j'ai mis un lien).
Donc pour résumer : je survole, la div apparait et suit la souris, je quitte la zone, la div disparaît.

Rien de bien sorcier jusque là. Le problème c'était de savoir pourquoi dans MA page, la div apparaît, mais au lieu de se positionner près du curseur, elle reste à sa position originale. La console d'erreurs de Firefox (seul navigateur testé pour le moment) m'affiche les erreurs qui seréfèrents aux lignes 36 et 37 de mon code :
Avertissement : Erreur d'analyse de la valeur pour la propriété « left ».  Déclaration abandonnée.
 Avertissement : Erreur d'analyse de la valeur pour la propriété « top ».  Déclaration abandonnée.

J'ai isolé le code qui pose problème pour y voir plus clair :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
<title>Help !</title>

<style type="text/css">
#infobulle {
    position: absolute;
    visibility: hidden;
    border: 1px solid #CCCCCC;
    padding: 10px;
    background-color: Yellow;
}
</style>

<script language="javascript" type="text/javascript">
document.onmousemove = get_mouse;

/**
 * Récupère les corrdonnées de la souris et les affecte à la bulle
 */
function get_mouse(e) {
    var x = y = 0;
    if(e.pageX || e.pageY) {
        x = e.pageX;
        y = e.pageY;
    }
    else{
        x = event.x;
        y = event.y;
    }

    var padding = 5;
    var bubble = document.getElementById("infobulle");
    bubble.style.left = x + padding;
    bubble.style.top = y + padding;
}

/**
 * Affiche la bulle
 */
function see_bubble(text) {
    var bubble = document.getElementById("infobulle");
    bubble.style.visibility = "visible";
    bubble.style.display = "block";

    bubbleLength = bubble.firstChild.length;
    bubble.firstChild.replaceData(0, bubbleLength, text);
}

/**
 * Cache la bulle
 */
function kill_bubble() {
    var bubble = document.getElementById("infobulle");
    bubble.style.visibility = "hidden";
    bubble.style.display = "none";
}
</script>
</head>
<body>
<div id="infobulle">&nbsp;</div>
<div style="text-align:center">
    <a href="#" onmouseover="see_bubble('Le texte de ma bulle...');" onmouseout="kill_bubble();">Un lien...</a>
</div>
</body>
</html>

Bon maintenant le rapport avec le titre de mon post (je suis sûr que tout le monde se posait la question) c'est ça : pourquoi quand j'enlève la première ligne (le doctype), tout fonctionne ??

Et surtout : comment je peux y remédier ? (sans me passer du XHTML Strict)

Je serais éternellement reconnaissant à la ou les personnes qui pourront m'aider. Parce que là, 2 jours pour trouver que l'erreur vient d'une ligne à la con, je suis pas loin de péter un câble...


mercredi 27 août 2008 à 09:15:39 | Re : Javascript & XHTML Strict

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
attendu que les unités pour les attributs left, top etc... peuvent être des pt, mm, cm, em...ou px il est nécéssaire de préciser l'unité que tu souhaites.
IExplorerIE par défaut semble affecter des px et FireFox ne sachant pas ne fait pas...
donc
bubble.style.left = x + padding +"px" ;
bubble.style.top = y + padding +"px" ;

;O)

mercredi 27 août 2008 à 09:37:04 | Re : Javascript & XHTML Strict

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Ton test n'est pas correct aussi, pageX indefini

voila le correctif

function get_mouse(e) {
    var x = y = 0;
    if(e) {
        x = e.pageX;
        y = e.pageY;   
    }
    else{
        x = event.x;
        y = event.y;
  }
  var padding = 5;
  var bubble = document.getElementById("infobulle");
   bubble.style.left = x + padding+ "px";
   bubble.style.top = y + padding+ "px";
}

mercredi 27 août 2008 à 09:41:29 | Re : Javascript & XHTML Strict

PetoleTeam

Membre Club
Effectivement je n'ai pas traité ce point, mais avec un DOCTYPE il faut tout prendre en compte...
voir
POSITION DE LA SOURIS DANS LA PAGE ...
;O)

mercredi 27 août 2008 à 10:37:19 | Re : Javascript & XHTML Strict

plasticism

Un immense merci à vous !
C'est vraiment l'erreur bête, cette fois je crois que je m'en souviendrais...



Cette discussion est classé dans : style, var, bulle, div, bubble


Répondre à ce message

Sujets en rapport avec ce message

j'ai fini par ameliorer, mais sa va toujour pas [ par frvfrvfrvfrv ] salut à tous,je suis toujours avec mes div. deux qui parte sur les coté,et la troisieme qui devrait monter, mais je crois pas etre assez autoritaire.. 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 mes div ne font pas ce que je leurs dis !#? sale gosses :) [ par frvfrvfrvfrv ] voici a quoi resemble mon script :une partie est ok...... grace a vous tous...... MERCI !donc: html Positionnement d'un élément dans la page [ par ov3rdoze ] Bonjour à tousJe suis en train de mettre en place une galerie photo. Les images sont listées dans un tableau en petit, et sont affichées en grand dans Ajourter une option à ce menu [ par goingup ] Bonjour à tous,Voici un menu vertical coulissant que j'utiliserais bien pour la grande arborescence de mon site...Par contre je voudrais lui ajouter u Probleme sur document.createElement().id [ par reunionnais974 ] Bonjour j'ai un souci en affectant id ou des evenements de souris.je charge un fichier xml je traite les données ce qui va créer ma page HTMLsauf que Probleme info bulle!!! [ par sabou94 ] Voilà mon probleme : J'ai un tableau où dans les differentes cases et lignes de mon tableau je récupere des données d'une base de données sybase. L'un Problème de cookie [ par molko13 ] Bonsoir à tous,Cela fait plusieurs jours que je me casse les dents sur la gestion d'un cookie qui serait à terme utilisé pour gérer l'affichage ou de div value [ par bossou ] bonjour à tous. je voudrais vous remercier tout un chacun pour les réponses pertinentes que vous apportez sur ce site. j'ai un autre problème dans le Décalage Infobulle sur IE [ par 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 l


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.