Tôi có một trang html đơn giản với một div chủ với chiều cao cố định (có thể cuộn) và 2 div nhỏ trong div này. Tôi đang cố gắng lấy phần tử hiện tại ở điểm giữa của div chủ trong khi cuộn. Nó hoạt động tốt trên tất cả các trình duyệt ngoại trừ IE8. Trong IE8, document.elementFromPoint() trả về null trong sự kiện onscroll cho tất cả các giá trị có thể làm tọa độ. Bất cứ ai biết một workaround hoặc giải pháp cho vấn đề này?elementFromPoint trả về null khi nó được sử dụng trong sự kiện trên cuộn
Đây là HTML code:
<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 };
}
nó giống như ma thuật .. tôi đã quyết định sử dụng một cách khác để tính toán nhưng cách này sẽ hữu ích hơn nhiều. Cảm ơn bạn. –