最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js獲取鼠標(biāo)位置實(shí)例詳解

 更新時(shí)間:2015年12月09日 09:32:57   作者:fox123871  
這篇文章主要介紹了js獲取鼠標(biāo)位置的方法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript響應(yīng)鼠標(biāo)事件獲取并操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了js獲取鼠標(biāo)位置的方法。分享給大家供大家參考,具體如下:

用 javascript 獲取當(dāng)前頁(yè)面上鼠標(biāo)(光標(biāo))位置在許多情況下都會(huì)用到,比如拖放,懸停提示(tooltip) 等等。當(dāng)然,這里我們依然要面對(duì)瀏覽器的兼容問(wèn)題,在不同的瀏覽器下,對(duì)這些相關(guān)的屬性處理方式也不同,這里詳細(xì)介紹了瀏覽器在處理這些屬性時(shí)的差異和最終的解決方法。

Javascript代碼如下:

<script type="text/javascript">
// 說(shuō)明:獲取鼠標(biāo)位置
// 整理:http://www.codebit.cn
// 來(lái)源:http://www.webreference.com
function mousePosition(ev){
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
</script>

使用方式:

document.onmousemove = mouseMove;
function mouseMove(ev){
 ev = ev || window.event;
 var mousePos = mousePosition(ev);
}

關(guān)于代碼的詳細(xì)說(shuō)明如下:

我們首先要聲明一個(gè) evnet 對(duì)象,無(wú)論移動(dòng)、點(diǎn)擊、按鍵等,都會(huì)激活一個(gè) evnet ,在 Internet Explorer 里, event 是全局變量,會(huì)被存儲(chǔ)在 window.event 里. 在 firefox 或者其他瀏覽器,event 會(huì)被相應(yīng)的函數(shù)獲?。?dāng)我們將mouseMove函數(shù)賦值于document.onmousemove,mouseMove 會(huì)獲取鼠標(biāo)移動(dòng)事件。

為了讓 ev 在所有瀏覽器下獲取了 event 事件,在Firefox下"||window.event"將不起作用,因?yàn)閑v已經(jīng)有了賦值。在 MSIE 中 ev 為空,所以得到 window.event 。

因?yàn)樵谶@篇文章中我們需要多次獲取鼠標(biāo)位置,所以我們?cè)O(shè)計(jì)了一個(gè) mousePosition 函數(shù),它包含一個(gè)參數(shù) : event 。

因?yàn)槲覀円?MSIE 和其他瀏覽器下運(yùn)行,F(xiàn)irefox 和其他瀏覽器用 event.pageX 和 event.pageY 來(lái)表示鼠標(biāo)相對(duì)于文檔的位置,如果你有一個(gè) 500*500 的窗口并且你的鼠標(biāo)在絕對(duì)中間,那么 pageX 和 pageY 的值都是 250,如果你向下滾動(dòng) 500, 那么 pageY 將變成 750。

MSIE 正好相反,它使用 event.clientX 和 event.clientY 表示鼠標(biāo)相當(dāng)于窗口的位置,而不是文檔。在同樣的例子中,如果你向下滾動(dòng)500,clientY 依然是 250,因此,我們需要添加 scrollLeft 和 scrollTop 這兩個(gè)相對(duì)于文檔的屬性。最后,MSIE 中文檔并不是從 0,0 開(kāi)始,而是通常有一個(gè)小的邊框(通常是 2 象素),邊框的大小定義在 document.body.clientLeft 和 clientTop 中,我們也把這些加進(jìn)去。

完成代碼:

<script type="text/javascript">
// 說(shuō)明:獲取鼠標(biāo)位置
// 整理:http://www.codebit.cn
// 來(lái)源:http://www.webreference.com
function mousePosition(ev){
   if(ev.pageX || ev.pageY){
     return {x:ev.pageX, y:ev.pageY};
   }
   return {
     x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
     y:ev.clientY + document.body.scrollTop - document.body.clientTop
   };
}
document.onmousemove = mouseMove;
function mouseMove(ev){
 ev = ev || window.event;
 var mousePos = mousePosition(ev);
   document.getElementByIdx('mouseXPosition').value = mousePos.x;
   document.getElementByIdx('mouseYPosition').value = mousePos.y;
}
</script>

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JS實(shí)現(xiàn)向表格行添加新單元格的方法

    JS實(shí)現(xiàn)向表格行添加新單元格的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)向表格行添加新單元格的方法,涉及javascript針對(duì)表格進(jìn)行動(dòng)態(tài)操作的技巧,需要的朋友可以參考下
    2015-03-03
  • JavaScript算法實(shí)例之求二叉樹(shù)從根到葉的所有路徑和

    JavaScript算法實(shí)例之求二叉樹(shù)從根到葉的所有路徑和

    如果你希望求某一特定路徑(例如從根到葉子)上數(shù)字的和,那么問(wèn)題就轉(zhuǎn)變?yōu)榱恕扒蠖鏄?shù)從根到葉的所有路徑和”,所以本文給大家介紹了如何使用JavaScript求二叉樹(shù)從根到葉的所有路徑和,需要的朋友可以參考下
    2023-10-10
  • js實(shí)現(xiàn)的簡(jiǎn)單圖片浮動(dòng)效果完整實(shí)例

    js實(shí)現(xiàn)的簡(jiǎn)單圖片浮動(dòng)效果完整實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)的簡(jiǎn)單圖片浮動(dòng)效果,以完整實(shí)例形式分析了javascript實(shí)現(xiàn)圖片定時(shí)漂浮移動(dòng)功能的方法,涉及javascript定時(shí)函數(shù)與數(shù)值動(dòng)態(tài)運(yùn)算相關(guān)技巧,需要的朋友可以參考下
    2016-05-05
  • Javascript/Jquery——簡(jiǎn)單定時(shí)器的多種實(shí)現(xiàn)方法

    Javascript/Jquery——簡(jiǎn)單定時(shí)器的多種實(shí)現(xiàn)方法

    本文為大家詳細(xì)介紹下使用Javascript/Jquery實(shí)現(xiàn)簡(jiǎn)單的定時(shí)器,方法有多種,大家可以根據(jù)自己的喜好自由選擇,希望對(duì)大家有所幫助
    2013-07-07
  • 微信小程序顯示倒計(jì)時(shí)功能示例【測(cè)試可用】

    微信小程序顯示倒計(jì)時(shí)功能示例【測(cè)試可用】

    這篇文章主要介紹了微信小程序顯示倒計(jì)時(shí)功能,結(jié)合實(shí)例形式分析了微信小程序針對(duì)給定時(shí)間的倒計(jì)時(shí)功能相關(guān)界面顯示與邏輯運(yùn)算操作技巧,需要的朋友可以參考下
    2018-12-12
  • JavaScript實(shí)現(xiàn)離開(kāi)頁(yè)面前提示功能【附j(luò)Query實(shí)現(xiàn)方法】

    JavaScript實(shí)現(xiàn)離開(kāi)頁(yè)面前提示功能【附j(luò)Query實(shí)現(xiàn)方法】

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)離開(kāi)頁(yè)面前提示功能,結(jié)合具體實(shí)例形式分析了javascript實(shí)現(xiàn)針對(duì)關(guān)閉頁(yè)面的事件響應(yīng)原理與操作技巧,并附帶jQuery的相應(yīng)實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • JS模板實(shí)現(xiàn)方法

    JS模板實(shí)現(xiàn)方法

    我們?cè)谑褂肑S渲染DOM時(shí),一般使用字符串創(chuàng)建DOM然后附加到父元素上,如果附加的DOM是動(dòng)態(tài)易變的,那需要在函數(shù)中寫(xiě)大量邏輯。如果在控件實(shí)現(xiàn)過(guò)程中,這帶來(lái)的問(wèn)題更為嚴(yán)重。
    2013-04-04
  • 基于js中style.width與offsetWidth的區(qū)別(詳解)

    基于js中style.width與offsetWidth的區(qū)別(詳解)

    下面小編就為就大家?guī)?lái)一篇基于js中style.width與offsetWidth的區(qū)別(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • input file上傳 圖片預(yù)覽功能實(shí)例代碼

    input file上傳 圖片預(yù)覽功能實(shí)例代碼

    input file上傳圖片預(yù)覽其實(shí)很簡(jiǎn)單。今天小編就通過(guò)本文給大家介紹input file上傳 圖片預(yù)覽功能的實(shí)現(xiàn)代碼,比較簡(jiǎn)單,對(duì)input file 上傳預(yù)覽功能感興趣的朋友參考下吧
    2016-10-10
  • JavaScript如何接收并顯示字節(jié)流中的圖片

    JavaScript如何接收并顯示字節(jié)流中的圖片

    這篇文章主要介紹了JavaScript如何接收并顯示字節(jié)流中的圖片問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

泗洪县| 顺平县| 抚松县| 通渭县| 嫩江县| 虹口区| 肥城市| 海丰县| 资源县| 保靖县| 大悟县| 集安市| 疏附县| 枝江市| 宣恩县| 休宁县| 科技| 许昌县| 明水县| 聂拉木县| 开远市| 白河县| 夏邑县| 淳化县| 宁都县| 常宁市| 天津市| 襄樊市| 奉节县| 朔州市| 公主岭市| 凤庆县| 图木舒克市| 阿克苏市| 泗水县| 平舆县| 自治县| 新巴尔虎右旗| 台南县| 怀仁县| 沽源县|