Merci de la réponse.
J'ai compris la raison de cette différence... Et ça n'a (techniquement) rien à voir avec la différence de l'origine de la page HTML (file:/// ou
http://), mais avec le "zoom" de la page (j'ignore le terme exact - ce que l'on modifie avec les Ctrl + et Ctrl -). En "localhost", le "zoom" par défaut de la page était plus important que celui du "file"...
Ce qui me pose désormais un autre problème... Comment puis-je gérer cette situation?
(Les exemples qui suivent sont dérivés de ceux présents sur le site
http://www.brothercake.com/)
La fonction Javascript incriminée ressemble à la suivante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| getRealPosition = function(object)
{
pos_x = object.offsetLeft;
pos_y = object.offsetTop;
tmp = object.offsetParent;
while (tmp != null)
{
pos_x += tmp.offsetLeft;
pos_y += tmp.offsetTop;
tmp = tmp.offsetParent;
}
// Note: ce qui suit n'est pas du Javascript, mais vous comprenez l'idée
return pos_x, pos_y
}; |
Et la manière dont ces coordonnées sont utilisées est la suivante:
1 2 3 4 5 6 7 8 9 10 11 12
| (...)
// On crée un nouvel élément de type <img> dans la page
newimg = document.getElementsByTagName('body')[0].appendChild((typeof document.createElementNS != 'undefined') ? document.createElementNS('http://www.w3.org/1999/xhtml', 'img') : document.createElement('img'));
// Note: le CSS pour img.idupe est défini comme suit: "position:absolute"
newimg.className = 'idupe';
// Note: ceci n'est pas du Javascript, mais vous comprenez l'idée
pos_x, pos_y = getRealPosition(original_image)
newimg.style.left = pos_x + 'px';
newimg.style.top = pos_y + 'px'; |
Le principe de base est donc de créer un objet de type <img> exactement à la même position qu'un <img> déjà existant - mais dans Firefox comme dans Safari, ceci ne fonctionne pas selon le niveau de Zoom...
Et merci également pour XAMPP, je vais aller regarder cela.
Daniel
Partager