Tengo una página html simple con un div maestro con altura fija (desplazable) y 2 pequeños divs en este div. Estoy tratando de obtener el elemento actual en el punto medio de div principal durante el desplazamiento. Funciona bien en todos los navegadores excepto IE8. En IE8, document.elementFromPoint() devuelve nulo en el evento onscroll para todos los valores posibles como coordenadas. ¿Alguien sabe una solución o solución para este problema?elementoFromPoint devuelve nulo cuando se usa en el evento onscroll
Aquí es código HTML:
<div id="mainDiv" style="height:300px;min-height:300px;overflow:auto;" onscroll="mouseScrolled();">
<div id="div1" style="height:500px;min-height:500px;background-color:blue;display:block;">
</div>
<div id="div2" style="height:500px;min-height:500px;background-color:red;display:block;">
</div>
</div>
<span id="debugSpan">
</span>
javascript:
function mouseScrolled(event) {
var mainDiv = document.getElementById('mainDiv');
var x = getXY(mainDiv)[0] + mainDiv.offsetWidth/2;
var y = getXY(mainDiv)[1] + mainDiv.offsetHeight/2;
var ctr = document.elementFromPoint(x , y);
document.getElementById('debugSpan').innerHTML = "ClientX=" + x + "<BR>" + "ClientY=" + y +"<BR> Control:" + ctrId;
}
function getXY(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
while (obj = obj.offsetParent)
}
return { x: curleft, y: curtop };
}
es como magia ... ya he decidido usar otra forma de calcularlo, pero de esta manera será mucho más útil. Gracias. –