成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

鼠標(biāo)點(diǎn)擊的各種坐標(biāo) (事件對(duì)象)

xiongzenghui / 2474人閱讀

摘要:返回事件發(fā)生時(shí),鼠標(biāo)指針相對(duì)于瀏覽器窗口可視區(qū)域的水平垂直窗口坐標(biāo)??梢晠^(qū)域不包括工具欄和滾動(dòng)條,事件和標(biāo)準(zhǔn)事件都定義了這個(gè)屬性返回鼠標(biāo)指針的位置,類似于,但它們使用的是文檔坐標(biāo)而非窗口坐標(biāo)。是相對(duì)于被點(diǎn)擊了的元素。

e.clientX,e.clientY
返回事件發(fā)生時(shí),鼠標(biāo)指針相對(duì)于瀏覽器窗口可視區(qū)域的水平(垂直)窗口坐標(biāo)??梢晠^(qū)域不包括工具欄和滾動(dòng)條,IE事件和標(biāo)準(zhǔn)事件都定義了這2個(gè)屬性


e.pageX e.pageY
返回鼠標(biāo)指針的位置,類似于event.clientX、event.clientY,但它們使用的是文檔坐標(biāo)而非窗口坐標(biāo)。這2個(gè)屬性不是標(biāo)準(zhǔn)屬性,但得到了廣泛支持。IE事件中沒(méi)有這2個(gè)屬性


e.offsetX e.offsetY
返回鼠標(biāo)指針的位置,相對(duì)于事件源元素的水平(垂直坐標(biāo)),只有IE有這兩個(gè)屬性,標(biāo)準(zhǔn)事件沒(méi)有對(duì)應(yīng)的屬性


e.screenX e.screenY
返回事件發(fā)生時(shí),鼠標(biāo)指針相對(duì)于用戶顯示器屏幕的左上角水平(垂直)坐標(biāo)


e.layerXe.layerY


一.鼠標(biāo)點(diǎn)擊

        window.onload = function(e){
            var box = document.getElementById("box");
            box.onclick = function(e){
                console.log("e.clientX,e.clientY: " + e.clientX,e.clientY);
                console.log("e.offsetX,e.offsetY: " + e.offsetX,e.offsetY);
                console.log("e.pageX,e.pageY: " + e.pageX,e.pageY);
                console.log("e.screenX,e.screenY: " + e.screenX,e.screenY);
                console.log("e.layerX,e.layerY: " + e.layerX,e.layerY);
            }
        }

二、不同瀏覽器對(duì)這些屬性的支持:


三、圖解 event.offsetX,event.clientX,event.pageX,event.screenX屬性


四、圖解 event.layerX,event.layerY 屬性


五、圖解 event.layerX,event.layerY 屬性


六:詳細(xì)文字描述

chrome:

e.pageX——相對(duì)整個(gè)頁(yè)面的坐標(biāo) 
e.layerX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo) e.x——相對(duì)可視區(qū)域的坐標(biāo)

ff:(firefox)

e.pageX——相對(duì)整個(gè)頁(yè)面的坐標(biāo)
e.layerX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo)
e.offsetX——無(wú)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——無(wú)

opera:

e.pageX——相對(duì)整個(gè)頁(yè)面的坐標(biāo)
e.layerX——無(wú)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的內(nèi)容區(qū)域左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)可視區(qū)域的坐標(biāo)

safari:(這個(gè)和chrome是一樣的)

e.pageX——相對(duì)整個(gè)頁(yè)面的坐標(biāo)
e.layerX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)可視區(qū)域的坐標(biāo)

IE9:

e.pageX——相對(duì)整個(gè)頁(yè)面的坐標(biāo)
e.layerX——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始的坐標(biāo) + 滾動(dòng)條滾過(guò)的距離(這個(gè)NB轟轟了····=。=)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的內(nèi)容區(qū)域左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始

IE8:

e.pageX——無(wú)
e.layerX——無(wú)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的內(nèi)容區(qū)域左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始

IE7:

e.pageX——無(wú)
e.layerX——無(wú)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的內(nèi)容區(qū)域左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始

IE6:

e.pageX——無(wú)
e.layerX——無(wú)
e.offsetX——相對(duì)當(dāng)前坐標(biāo)系的內(nèi)容區(qū)域左上角開(kāi)始的坐標(biāo)
e.clientX——相對(duì)可視區(qū)域的坐標(biāo)
e.x——相對(duì)當(dāng)前坐標(biāo)系的border左上角開(kāi)始


所以考慮到兼容的時(shí)候必須這么寫,

        function getEventPosition(ev){   
           var x, y;   
           if (ev.layerX || ev.layerX == 0) {   
               x = ev.layerX;   
               y = ev.layerY;   
           }else if (ev.offsetX || ev.offsetX == 0) { // Opera   
               x = ev.offsetX;   
               y = ev.offsetY;   
           }   
           return {x: x, y: y};   
        }

PageX和clientX
pageX指鼠標(biāo)在頁(yè)面上的位置,以頁(yè)面左側(cè)為參考點(diǎn)
clientX指可視區(qū)域內(nèi)離左側(cè)的距離,以滾動(dòng)條滾動(dòng)到的位置為參考點(diǎn)。各個(gè)瀏覽器相同。
即當(dāng)有滾動(dòng)條時(shí)clientX 小于 pageX


screenX
鼠標(biāo)在屏幕中的位置,指的是鼠標(biāo)到電腦屏幕左側(cè)的距離。 各個(gè)瀏覽器相同。
與clientX的區(qū)別是clientX是到瀏覽器的距離。
例如:當(dāng)網(wǎng)頁(yè)縮小,拖動(dòng)到屏幕中間時(shí),screnX 大于 clientX


offsetX和layerX
為了兼容瀏覽器,layerX是FF、chrome識(shí)別,offsetX是除了FF之外。

如果觸發(fā)元素設(shè)置了position,則offsetX等于layerX
如果頁(yè)面有滾動(dòng)條,添加滾動(dòng)的距離。

layerX:FF特有,是相對(duì)于父元素的位置,鼠標(biāo)相對(duì)于“觸發(fā)事件的元素的層級(jí)關(guān)系中離該元素最近的,設(shè)置了position的父元素”的邊界的位置,從border的左上角開(kāi)始定位,即如果這個(gè)父

元素存在border,則坐標(biāo)原點(diǎn)在border的左上角,而不是內(nèi)容區(qū)域的左上角。
offsetX:IE特有,鼠標(biāo)相對(duì)于“觸發(fā)事件的元素”的位置,從內(nèi)容區(qū)域左上角開(kāi)始定位,不是從border左上角開(kāi)始!這個(gè)屬性比較好用,用來(lái)判斷鼠標(biāo)點(diǎn)在一個(gè)元素中的哪個(gè)位置很方便,F(xiàn)F沒(méi)有直接替換的屬性。

點(diǎn)擊li,如果UL設(shè)置了position則layerX相對(duì)于UL,如果沒(méi)有則向父級(jí)冒泡尋找設(shè)置了position的元素,直到根節(jié)點(diǎn)body。
offsetX是相對(duì)于被點(diǎn)擊了的LI元素。


e.x
FF不識(shí)別
到可視區(qū)域的距離,有無(wú)滾動(dòng)條相同,同clientX
opera,chrome和safari的event.x返回值和event.clientX相同
IE8910event.x返回值和event.clientX相同
ie7e.x比e.clientX少2px

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://hztianpu.com/yun/53606.html

相關(guān)文章

  • 鼠標(biāo)點(diǎn)擊各種坐標(biāo) (事件對(duì)象)

    摘要:返回事件發(fā)生時(shí),鼠標(biāo)指針相對(duì)于瀏覽器窗口可視區(qū)域的水平垂直窗口坐標(biāo)??梢晠^(qū)域不包括工具欄和滾動(dòng)條,事件和標(biāo)準(zhǔn)事件都定義了這個(gè)屬性返回鼠標(biāo)指針的位置,類似于,但它們使用的是文檔坐標(biāo)而非窗口坐標(biāo)。是相對(duì)于被點(diǎn)擊了的元素。 e.clientX,e.clientY返回事件發(fā)生時(shí),鼠標(biāo)指針相對(duì)于瀏覽器窗口可視區(qū)域的水平(垂直)窗口坐標(biāo)。可視區(qū)域不包括工具欄和滾動(dòng)條,IE事件和標(biāo)準(zhǔn)事件都定義了這2...

    xushaojieaaa 評(píng)論0 收藏0
  • JavaScript中各種寬高以及位置總結(jié)

    摘要:和這一對(duì)屬性是用來(lái)讀取元素的的寬度和高度的。第二部分對(duì)象在中,對(duì)于元素的運(yùn)動(dòng)的操作通常都會(huì)涉及到對(duì)象,而對(duì)象也存在很多位置屬性,且由于瀏覽器兼容性問(wèn)題會(huì)導(dǎo)致這些屬性間相互混淆,這里一一講解。文章轉(zhuǎn)自中的各種寬高以及位置總結(jié) 在javascript中操作dom節(jié)點(diǎn)讓其運(yùn)動(dòng)的時(shí)候,常常會(huì)涉及到各種寬高以及位置坐標(biāo)等概念,如果不能很好地理解這些屬性所代表的意義,就不能理解js的運(yùn)動(dòng)原理,同時(shí)...

    microelec 評(píng)論0 收藏0
  • HTML元素和事件對(duì)象各種寬高和位置

    摘要:元素和事件對(duì)象中的各種寬高和位置標(biāo)簽經(jīng)常被一堆的弄混,統(tǒng)一整理一下。元素中的寬高和位置屬性表示元素的內(nèi)部寬度,以像素計(jì)。表示元素實(shí)際占用的高度,包括其邊框,內(nèi)邊距和元素內(nèi)容。 HTML元素和事件對(duì)象中的各種寬高和位置 標(biāo)簽: js [TOC] 經(jīng)常被一堆的xxxWidth,xxxLeft弄混,統(tǒng)一整理一下。 1. HTML元素中的寬高和位置屬性 clientWidth 表示元素的內(nèi)...

    gggggggbong 評(píng)論0 收藏0
  • JS進(jìn)階篇4---原生JS實(shí)現(xiàn)對(duì)元素拖拽

    摘要:原生實(shí)現(xiàn)對(duì)元素的拖拽一背景介紹此處為鋪墊內(nèi)容,可跳過(guò)隨著前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識(shí)新技術(shù)層出不窮,極大地拓展了開(kāi)發(fā)者的操作空間,也大大地提升了用戶體驗(yàn)。 原生 JS 實(shí)現(xiàn)對(duì) html 元素的拖拽 一、背景介紹 【此處為鋪墊內(nèi)容,可跳過(guò)】 隨著 Web 前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識(shí)、新技術(shù)層出不窮,極大地拓展了開(kāi)發(fā)者的操作空間,也大大地提升了用戶體驗(yàn)。而隨著...

    evin2016 評(píng)論0 收藏0
  • JS進(jìn)階篇4---原生JS實(shí)現(xiàn)對(duì)元素拖拽

    摘要:原生實(shí)現(xiàn)對(duì)元素的拖拽一背景介紹此處為鋪墊內(nèi)容,可跳過(guò)隨著前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識(shí)新技術(shù)層出不窮,極大地拓展了開(kāi)發(fā)者的操作空間,也大大地提升了用戶體驗(yàn)。 原生 JS 實(shí)現(xiàn)對(duì) html 元素的拖拽 一、背景介紹 【此處為鋪墊內(nèi)容,可跳過(guò)】 隨著 Web 前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識(shí)、新技術(shù)層出不窮,極大地拓展了開(kāi)發(fā)者的操作空間,也大大地提升了用戶體驗(yàn)。而隨著...

    phoenixsky 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<