Autor Zpráva
xslove
Profil
ahoj, udělal jsem následující stránku, kde je úpln vlevo nahoře umístěný obrázek a pod ním je element, kde se vypisují souřadnice X a Y umístění tohoto obrázku a dále souřadnice myši event.clientX a event.clientY. podivný chování jeví IE 6.0, když najedu na levý horní roh obrázku vypíše souřadnice umístění obrázku 10:15 ale souřadnice myši 12:17 . mozilla vypíše souřadnice totožné.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<body onmousemove="dox(event);">
<script type="text/javascript">
/**
* Něco jako innerText, ale pomocí DOM
*/
function dominnerText(node, text) {
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
node.appendChild(document.createTextNode(text));
}


// works in IE and Mozilla.
function getElementPosition(element){
var x=0,y=0;
while (element!=null){
x+=element.offsetLeft-element.scrollLeft;
y+=element.offsetTop-element.scrollTop;
element=element.offsetParent;
}
return {x:x,y:y};
}

// Browser compatible element getter
function getElement(id){
if (document.all)
return document.all[id];
if (document.getElementById(id))
return document.getElementById(id);
return null;
}

// generic display function
function findElement(id){
// Get the element by its id
element = getElement(id);
// make sure that the element was found
if (! element) return;
// get the object that will contain the x,y coordinates
return position = getElementPosition(element);
}


function dox(e)
{

// pozice obrazku (resp cehokoli s ID, asi)
var pozice = findElement('mapx');
var poz_x = pozice.x;
var poz_y = pozice.y;

dominnerText(document.getElementById('wgs'), "poz: " + poz_x + ":" + poz_y + " event: " + e.clientX + ":" + e.clientY );

}

</script>
<img id="mapx" src="pulse.jpg" width="600" height="400" alt="ural" title="Ural na ukrajině" onmousemove="dox(event);" />
<br/>
<span id="wgs">xxxx</span>
</body>
nightfish
Profil
a dotaz je?
DJ Miky
Profil
xslove
Nevím, jak to přesně myslíš, ale nedělá to nějaký margin toho obrázku nebo body?
habendorf
Profil
udělal jsem následující stránku

/**
* Něco jako innerText, ale pomocí DOM
*/
function dominnerText(node, text) {
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
node.appendChild(document.createTextNode(text));
}


http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=5&topic=20 0
peta
Profil *
xslove
Jsi zadej kolem obrazku ramecek. Resp. dej kolem obrazku span a tomu dej ramecek. Problem totiz je, ze mozilla ma nejak zvlastne udelany obrazek, ze tam ma bud: line-height / font-size / margin / padding jinak.

habendorf to nejak nechapu, co jsi chtel rici:)

ja treba pouzivam toto na vycisteni:
function objDel(o) {while (o.childNodes.length) {o.removeChild(o.childNodes[0]);}}
Ale nevim, co je rychlejsi a jistejsi...
xslove
Profil
no dotaz je, jestli nekdo nevi jak to obejit v IE, protoze podle reseni mozilli je to spravne. akorat ten IE vraci blby souradnice o 2px.

ps: to s tim spanem kolem obrazku se chova uplne stejne v IE
peta
Profil *
xslove
line-height / font-size / margin / padding (proste si to vynuluj, postupne a uvidis, ktere na to ma vliv)

nebo prepni u FF -moz-borderbox nebo, jak se ta vlastnost jmenuje.

nebo si dej detekci IE a odpocitavej si ty 2 pixely rucne :)
var isIE=(document.all && !window.opera)?1:0;
Toto téma je uzamčeno. Odpověď nelze zaslat.

0