這個看似簡單的獲取坐標功能,可是已經花費我一天時間了,白天一直搜索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 { width: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 + '\ny: ' + 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="width:1000px;height:1000px;background:#ccc;" onmousemove="test(event)"></div> </body> </html>
我改造之后需要的代碼
<!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>7777777</title> <script src="http://code.jquery.com/jquery-1.7.2.js"></script> <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 + '\ny: ' + y); return { 'x': x, 'y': y }; } function test(object,zhi,e){ //document.getElementById("mjs").innerHTML = getMousePos(e).x+','+getMousePos(e).y; $("#mydiv1").css("top", getMousePos(e).y+10+"px").css("left", getMousePos(e).x+"px").css("display", "block"); $("#mydiv1").html(zhi); }; function hides(object){ //document.getElementById("mjs").innerHTML = getMousePos(e).x+','+getMousePos(e).y; $("#mydiv1").css("display", "none"); $("#mydiv1").html(""); }; </script> <style type="text/css"> .tip { width:200px; border:2px solid #ddd; padding:8px; background:#f1f1f1; color:#666; } </style> </head> <body> <button>點擊我</button> <div id="x">我會變紅的哦</div> <div id="mydiv1" style="position:absolute;display:none;border:1px solid silver;background:silver;"> 提示1效果 </div> <div id="mydiv2" style="position:absolute;display:none;border:1px solid silver;background:silver;"> 提示2效果 </div> <a id="t1" onMouseOver="test( this,'終於找到了',event)" onMouseOut="hides(this)">鼠標放上去1</a> <br><br><br><br><br> <a id="t2" onMouseOver="test(this,'ok',event)" onMouseOut="hides(this)">鼠標放上去2</a> </body> </html>
下面這個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.jb51.net/article/55128.htm