站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        javascript怎么獲取指針的位置

        javascript獲取指針的位置的方法:使用事件對象的pageX和pageY,或者clientX和clientY屬性,并且配合scrollLeft和scrollTop屬性,這樣就可以計算出指針的位置了。

        javascript怎么獲取指針的位置

        本文操作環(huán)境:windows10系統(tǒng)、javascript 1.8.5、thinkpad t480電腦。

        要想獲取指針在頁面中的位置,可以使用事件對象的pageX和pageY,或者是 clientX 和 clientY(兼容 IE)屬性,同時還需要配合 scrollLeft 和 scrollTop 屬性,這樣就可以計算出鼠標(biāo)指針在頁面中的位置了。

        //獲取鼠標(biāo)指針的頁面位置 //參數(shù):e表示當(dāng)前事件對象 //返回值:返回鼠標(biāo)相對頁面的坐標(biāo),對象格式(x,y) function getMP (e) {     var e = e || window.event;     return {         x : e.pageX || e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft),         y : e.pageY || e.clientY + (document.documentElement.scrollTop || document.body.scrollTop)     } }

        pageX 和 pageY 事件屬性不被 IE 瀏覽器支持,而 clientX 和 clientY 事件屬性又不被 Safari 瀏覽器支持,因此可以混合使用它們以兼容不同瀏覽器。對于怪異模式來說,body 元素代表頁面區(qū)域,而 html 元素被隱藏,但是標(biāo)準(zhǔn)模式以 html 元素代表頁面區(qū)域,而 body 元素僅是一個獨立的頁面元素,所以需要兼容這兩種解析方式。

        下面示例演示了如何調(diào)用上面擴展函數(shù) getMP() 捕獲當(dāng)前鼠標(biāo)指針在文檔中的位置。

        <body style="width:2000px;height:2000px;">     <textarea id="t" cols="15" rows="4" style="position:fixed;left:50px;top:50px;"></textarea> </body> <script>     var t = document.getElementById("t");     document.onmousemove = function(e){         var m = getMP(e);         t.value ="mouseX = " + m.x  + "n" + "mouseY = " + m.y     } </script>

        演示效果如下:

        javascript怎么獲取指針的位置

        獲取指針的相對位置

        使用 offsetX 和 offsetY 或者 layerX 和 layerY 可以獲取鼠標(biāo)指針相對定位包含框的偏移位置。如果使用 offsetLeft 和 offsetTop 屬性獲取元素在定位包含框中的偏移坐標(biāo),然后使用 layerx 屬性值減去 offsetLeft 屬性值,使用 layery 屬性值減去 offsetTop 屬性值,即可得到鼠標(biāo)指針在元素內(nèi)部的位置。

        //獲取鼠標(biāo)指針在元素內(nèi)的位置 //參數(shù):e表示當(dāng)前事件對象,o表示當(dāng)前元素 //返回值:返回相對坐標(biāo)對象 function getME (e, o) {     var e = e || window.event;     return {         x : e.offsetX || (e.layerX - o.offsetLeft),         y : e.offsetY || (e.layerY - o.offsetTop)     } }

        在實踐中上面函數(shù)存在以下兩個問題:

        • Mozilla 類型和 Safari 瀏覽器以元素邊框外壁的左上角為參照點。

        • 其他瀏覽器則是以元素邊框內(nèi)壁的左上角為坐標(biāo)原點。

        考慮到邊框?qū)κ髽?biāo)位置的影響,當(dāng)元素邊框很寬時,必須考慮如何消除邊框?qū)τ谑髽?biāo)位置的影響。但是,由于邊框樣式不同,它存在 3 像素的默認(rèn)寬度,為獲取元素的邊框?qū)嶋H寬度帶來了麻煩。需要設(shè)置

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品性视频| 97久久超碰国产精品2021| 亚洲性日韩精品国产一区二区| 69久久夜色精品国产69| 精品久久久久久久中文字幕 | 偷拍精品视频一区二区三区| 精品久久久久久99人妻| 国产精品亚洲w码日韩中文| 国产伦精品一区二区免费| 国产精品无码久久综合网| 国产精品美女免费视频观看| 久久国产精品免费一区| 亚洲精品乱码久久久久久蜜桃图片 | 国产精品无码v在线观看| 久久久精品国产亚洲成人满18免费网站 | 99在线精品视频观看免费| 无码人妻精品一区二区在线视频| 四虎国产精品永久地址51| 99视频在线精品国自产拍亚瑟| 国产欧美日韩精品a在线观看 | 69SEX久久精品国产麻豆| 精品成人免费自拍视频| 亚洲国产精品综合久久网络| 国产精品久线在线观看| 久久成人精品| 少妇人妻无码精品视频| 精品无码一区在线观看| 亚洲精品国产精品国自产观看| 精品久久久久久无码中文野结衣| 99国产精品永久免费视频| 国产精品永久免费视频| 亚洲国产另类久久久精品黑人 | 精品日韩在线视频一区二区三区| 精品三级在线观看| 亚洲国产精品无码久久| 国产精品videossex白浆| 亚洲?V乱码久久精品蜜桃 | 亚洲精品国产日韩无码AV永久免费网| 国产精品麻豆VA在线播放| 无码精品黑人一区二区三区| 亚洲一区精品中文字幕|