1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<script>
// @desc: Permet de récupérerla position absolut d'une balise HTML
// @arg : AObject Balise HTML
function FindPos(AObject)
{
var posX = 0, posY = 0;
do
{
posX += AObject.offsetLeft;
posY += AObject.offsetTop;
AObject = AObject.offsetParent;
}
while( AObject != null );
var pos = [];
pos['X'] = posX;
pos['Y'] = posY;
return pos;
}
// création conteneur info-bulle
var oBulle = document.createElement('DIV');
oBulle.id = 'info_bulle';
document.body.appendChild(oBulle);
var oClone,
oInfo = document.querySelectorAll('.HoverfunctionMeps'),
i, nb = oInfo.length;
for (i = 0; i < nb; i += 1) {
oInfo[i].onmouseover = function(e) {
e = e || window.event;
// récup. élément
oClone = this.querySelector('.bulle');
if( oClone){
// copie de l'information
oClone = oClone.cloneNode(true);
// contenu visible
oClone.style.display = 'block';
/////////////////////////////////////
// récup. posion élément
var posElement = FindPos(this); // <- j'ai mis ici this car je pense que cela correspond à ton élément survoler sinon il faut passer l'élément survoler par la souris
oBulle.style.left = (posElement.posX - this.clientWidth) + 'px'; // <- ici Left = position left de l'élément survoler - la hauteur de l'infos bulle (pour la positionner au dessus)
oBulle.style.top = (posElement.posY - this.clientHeight) + 'px'; // <- ici top = position top de l'élément survoler - la hauteur de l'infos bulle (pour la positionner à gauche)
oBulle.appendChild(oClone);
// affiche
oBulle.style.display = 'block';
oBulle.style.background = '#DAE7FA';
};
};
oInfo[i].onmouseout = function() {
// vide le contenu
while (oBulle.firstChild) {
oBulle.removeChild(oBulle.firstChild);
}
// masque
oBulle.style.display = 'none';
};
}
</script><br><br> |
Partager