JavaScript: event.offsetX еквивалент за DOM 2?
1 отговора
62 прегледа
JavaScript: event.offsetX еквивалент за DOM 2?
Някой знае ли еквивалент на event.offsetX (event.offsetY) в DOM 2? Значи в IE тези неща работят, но когато стане въпрос за Mozilla, нещата не са същите. Event обекта на Mozilla е по DOM 2 спецификацията и няма offsetX и offsetY свойства. Как мога да изчисля (с кое свойство да заменя) offsetX по DOM 2 спецификацията?
ACTPOHOM
ACTPOHOM
Re: JavaScript: event.offsetX еквивалент за DOM 2?
Докато чакам някой да ми помогне си помогнах сам ;-)
Ето какво изрових с Google:
[линк].
За архива ще представя примерен код, който илюстрира идеята. В обработчика на събитието се поставя следния код:
function eventHandler(e) {
if (window.event) // IE
alert(window.event.offsetX + ':' + window.event.offsetY);
else if (e.target) { // Mozilla, DOM 2
var coords = {x: 0, y: 0};
var el = e.target;
do {
coords.x += el.offsetLeft;
coords.y += el.offsetTop;
}
while ((el = el.offsetParent));
var offsetX = e.clientX - coords.x;
var offsetY = e.clientY - coords.y;
alert(offsetX + ':' + offsetY);
}
}
Работи еднакво добре с Mozilla и Konqueror. Наздраве !!!
ACTPOHOM
Ето какво изрових с Google:
[линк].
За архива ще представя примерен код, който илюстрира идеята. В обработчика на събитието се поставя следния код:
function eventHandler(e) {
if (window.event) // IE
alert(window.event.offsetX + ':' + window.event.offsetY);
else if (e.target) { // Mozilla, DOM 2
var coords = {x: 0, y: 0};
var el = e.target;
do {
coords.x += el.offsetLeft;
coords.y += el.offsetTop;
}
while ((el = el.offsetParent));
var offsetX = e.clientX - coords.x;
var offsetY = e.clientY - coords.y;
alert(offsetX + ':' + offsetY);
}
}
Работи еднакво добре с Mozilla и Konqueror. Наздраве !!!
ACTPOHOM