zoukankan      html  css  js  c++  java
  • js获取鼠标坐标位置兼容多个浏览器

    这个是IE 11 下兼容下视图测试时可用。

    $(window).bind('beforeunload', function (event) {
        var _this = this;
        var x = event.originalEvent.clientX;
        var y = event.originalEvent.clientY;
        if (x > event.currentTarget.document.body.clientWidth && y < 0 || event.altKey) {
           // alert("ok");
            $.post("/admin/login/ClearSesssion", function (response) {
                //$("#myPnl").html(response);
            });
        }
    
    });

    这个看似简单的获取坐标功能,可是已经花费我一天时间了,白天一直搜索js获取坐标,找了很多很多,一一检验,结果出现不兼容。真的够烦躁了,但是事情还是要继续,要完成,回来又继续实践,搜索,反复操作,发现自己好多不会呀,特别是jquery自定义方法(函数),根本就不会,很欠缺基础,心里暗暗下决心,弄完这个好好学习一下js,不然老是卡在这方面。时间虽然已经过去很久了,但我还是没有放弃,想想换个关键词搜索一下,是不是可以找到我想要的。搜索“js获取坐标兼容ie8”,一下子出现后几条,于是挑选一个实践,改造,功夫不负有心人,终于出现我想要的结果了。感谢网络,感谢网友,解决了困扰我一天的问题。贴出网上找到的代码。

    复制代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>JavaScript获取鼠标移动时的坐标(兼容:IE8、谷歌、Firefox、Opera)_脚本之家</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <style type="text/css"> 
    .tip { 
    200px; 
    border:2px solid #ddd; 
    padding:8px; 
    background:#f1f1f1; 
    color:#666; 
    } 
    </style> 
    <script type="text/javascript"> 
      
    //方法1 
    function mousePos(e){ 
      var x,y; 
      var e = e||window.event; 
      return { 
        x:e.clientX+document.body.scrollLeft + document.documentElement.scrollLeft, 
        y:e.clientY+document.body.scrollTop + document.documentElement.scrollTop 
      }; 
    }; 
      
    //方法2 
    //Firefox支持属性pageX,与pageY属性,这两个属性已经把页面滚动计算在内了, 
    //在Chrome可以通过document.body.scrollLeft,document.body.scrollTop计算出页面滚动位移, 
    //而在IE下可以通过document.documentElement.scrollLeft ,document.documentElement.scrollTop 
    function getMousePos(event) { 
          var e = event || window.event; 
          var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; 
          var scrollY = document.documentElement.scrollTop || document.body.scrollTop; 
          var x = e.pageX || e.clientX + scrollX; 
          var y = e.pageY || e.clientY + scrollY; 
          //alert('x: ' + x + '
    y: ' + y); 
          return { 'x': x, 'y': y }; 
        } 
      
    function test(e){ 
    document.getElementById("mjs").innerHTML = getMousePos(e).x+','+getMousePos(e).y;   
    }; 
    </script> 
    </head> 
    <body> 
    <div id="mjs" class="tip">获取鼠标点击位置坐标</div> 
    <div id="test" style="1000px;height:1000px;background:#ccc;" onmousemove="test(event)"></div> 
    </body> 
    </html>
    复制代码

    我改造之后需要的代码

    按 Ctrl+C 复制代码
    按 Ctrl+C 复制代码

    下面这个ie7,ie8不兼容,部分浏览器可以

    <img src="images/a.gif" onclick="GetPosition(event)" />


    function GetPostion(e) {
      var x = getX(e);
      var y = getY(e);
    }
    function getX(e) {
      e = e || window.event;
       
    return e.pageX || e.clientX + document.body.scroolLeft;
    }

    function getY(e) {
      e = e|| window.event;
     return e.pageY || e.clientY + document.boyd.scrollTop;
    }

    总结一下,信息检索真的很重要,就是要学会提问,搜索关键字。

    转自: http://www.cnblogs.com/annabook/p/4506614.html

  • 相关阅读:
    时区处理
    C#视频取帧图
    【C#】C#获取文件夹下的所有文件
    利用web of science做论文综述
    C# HTML解析工具HtmlAgilityPack使用实例(一)
    C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
    win10文件夹或文件已在另一程序中打开
    指定网卡IP进行ping操作
    C# 使用WebClient时,在多网卡IP时,指定IP发送Web请求
    C# 消息队列
  • 原文地址:https://www.cnblogs.com/cuiwenke/p/4914483.html
Copyright © 2011-2022 走看看