event.offsetX 在 firefox 有對應的屬性嗎?

分类:Javascript| 发布:camnprbubuol| 查看: | 发表时间:2011/9/5

event.offsetX 依照微軟的文件是說滑鼠的X座標 (以引發事件的物件內部來算起)

我翻了以前 netscape 提供的  javascript client reference 1.3

沒有找到對應的屬性

不知道現在新版的javascript 是否有?

請前輩指點一下,謝謝

 

另外,除了微軟之外, netscape 新版本的 javascript client reference 似乎找不到了,網路上有沒有針對非微軟瀏覽器撰寫的javascript線上手冊?

  1. Netscape 沒有直接對應的屬性,只能間接地去判斷事件的 offsetX 屬性值是否為未定義(undefined),若是則使用自定函式去計算出 Netscape 的 offsetX 值:

    JavaScript 程式碼範例
    <script type="text/javascript">
    function getOffset(evt)
    {
      var target = evt.target;
      if (target.offsetLeft == undefined)
      {
        target = target.parentNode;
      }
      var pageCoord = getPageCoord(target);
      var eventCoord =
      { 
        x: window.pageXOffset + evt.clientX,
        y: window.pageYOffset + evt.clientY
      };
      var offset =
      {
        offsetX: eventCoord.x - pageCoord.x,
        offsetY: eventCoord.y - pageCoord.y
      };
      return offset;
    }

    function getPageCoord(element)
    {
      var coord = {x: 0, y: 0};
      while (element)
      {
        coord.x += element.offsetLeft;
        coord.y += element.offsetTop;
        element = element.offsetParent;
      }
      return coord;
    }

    function getEventOffset(evt)
    {
      var msg = "";
      if (evt.offsetX == undefined)
      {
        var evtOffsets = getOffset(evt);
        msg += "offsetX: " + evtOffsets.offsetX + "; ";
        msg += "offsetY: " + evtOffsets.offsetY + "; ";
      }
      else
      {
        msg += "offsetX: " + evt.offsetX + "; ";
        msg += "offsetY: " + evt.offsetY + "; ";
      }

      alert(msg);
      return msg;
    }
    </script>

     

  2. 網路上還找的到吧:JavaScript Central
来源:http://social.msdn.microsoft.com/Forums/zh-CN/236/thread/3527adf4-c42a-4b15-977f-1d78fbb54597
365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/416.html