日期:2014-05-16  浏览次数:20483 次

监听鼠标的点击事件获取屏幕坐标不正确
我在浏览器中创建了一个div,在div中添加了一张图片(图片是从后台传过来的),我是监听鼠标点击图片,获取鼠标点击图片时的屏幕坐标,但是在图片上点击同一个点返回的屏幕坐标确不相同,希望大家给看看:
window.onload=function()
{ obj = document.getElementById("imgmap");//找到对象
  obj.onmousedown = down;  
  }
  //设置鼠标单击监听函数
function down(event)
{
oEvent=event||window.event;  
if(oEvent.button==1) {
firx=oEvent.clientX-10; //这个函数的作用要图片的起始点为(0,0)
firy=oEvent.clientY-10;
  document.getElementById("ttc").value=firx;
  document.getElementById("hubj").value=firy;
  }
}
 <div id="imp" style="width:800px; height:500px; border:1px solid #000; overflow:hidden;"> 
 <img id="imgmap" src="maptest" > 
  </div>
 <input type="text" name ="ttc" id="ttc">
<input type="text" name ="hubj" id="hqbj"> 
每次点击图片上同一个点返回的屏幕坐标不同,这是为什么啊??

------解决方案--------------------
兼容性好的话,直接用jquery吧,他把兼容问题都替你处理了
JScript code

        $(document).ready(function() {
            $('#imgmap').click(function(e) {
            
                var offset = $(this).offset();
                alert(e.clientX - offset.left);//相对于图的坐标,如果相对于屏幕的坐标,直接e.clientX
                alert(e.clientY - offset.top);
            });
        });