位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 設(shè)計(jì)鼠標(biāo)跟隨

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-27

■知識(shí)點(diǎn)

當(dāng)事件發(fā)生時(shí),利用事件對(duì)象的坐標(biāo)屬性可以獲取鼠標(biāo)指針的位置,說(shuō)明如表所示。

說(shuō)

兼容性

clientX

以瀏覽器窗口左上頂角為原點(diǎn),定位x軸坐標(biāo)

所有瀏覽器,不兼容Safari

clientY

以瀏覽器窗口左上頂角為原點(diǎn),定位y軸坐標(biāo)

所有瀏覽器,不兼容Safari

offsetX

以當(dāng)前事件的目標(biāo)對(duì)象左上頂角為原點(diǎn),定位x軸坐標(biāo)

所有瀏覽器,不兼容Mozilla

offsetY

以當(dāng)前事件的Hi標(biāo)對(duì)象左上頂角為原點(diǎn),定位y軸坐標(biāo)

所有瀏覽器,不兼容Mozilla

pagcX

document對(duì)象即文檔窗口)左上頂角為原點(diǎn),定位x軸坐標(biāo)

所有瀏覽器,不兼容IE

pageY

document對(duì)象(即文檔窗口)左上頂角為原點(diǎn),定位y軸坐標(biāo)

所有瀏覽器,不兼容IE

screenX

計(jì)算機(jī)屏幕左上頂角為原點(diǎn),定位x軸坐標(biāo)

所有瀏覽器

screenY

計(jì)算機(jī)屏幕左上頂角為原點(diǎn),定位y軸坐標(biāo)

所有瀏覽器

layerX

最近的絕對(duì)定位的父元素(如果沒(méi)有,則為document對(duì)象)左上頂 角為原點(diǎn),定位x軸坐標(biāo)

Mozilla  Safari

layerY

最近的絕對(duì)定位的父元素(如果沒(méi)有,則為document對(duì)象)左上頂 角為原點(diǎn),定位y軸坐標(biāo)

Mozilla  Safari

■實(shí)例設(shè)計(jì)

    設(shè)計(jì)一個(gè)函數(shù),根據(jù)事件對(duì)象獲取鼠標(biāo)指針的坐標(biāo)值,設(shè)置該對(duì)象為絕對(duì)定位,絕對(duì)定位的值為鼠標(biāo)指針當(dāng)前的坐標(biāo)值。定義形參為:對(duì)象引用指針、相對(duì)鼠標(biāo)指針的偏移距離以及事件對(duì)象。

var pos = function(o, x, y,event){        //鼠標(biāo)指針定位賦值函數(shù)

    var posX = 0, posY = 0;               //臨時(shí)變量值 

    var e = event || window.event;        //標(biāo)準(zhǔn)化事件對(duì)象

    if(e.pageX || e.pageY){               //獲取鼠標(biāo)指針的當(dāng)前坐標(biāo)值

        posX = e.pageX;

        posY = e.pageY;

    }

    else if(e.clientX |丨 e.clientY){

        posX = e.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;

        posY = e.clientY + document.documentElement.scrollTop + document.body.scrollTop;

    }

    o.style.position = "absolute";    //定義當(dāng)前對(duì)象為絕對(duì)定位

    o.style.top = (posY + y) + "px";  //用鼠標(biāo)指針的y軸坐標(biāo)和傳入偏移值設(shè)置對(duì)象y軸坐標(biāo) 

    o.style.left = (posX + x) + "px"; //用鼠標(biāo)指針的x軸坐標(biāo)和傳入偏移值設(shè)置對(duì)象x軸坐標(biāo)

}

    下面為document對(duì)象注冊(cè)鼠標(biāo)移動(dòng)事件處理函數(shù),并傳入鼠標(biāo)定位封裝函數(shù),傳入的對(duì)象為<div>元素,設(shè)置其位置向鼠標(biāo)指針右下方偏移(10,20)的距離??紤]到DOM事件模型通過(guò)參數(shù)形式傳遞事件對(duì)象,所以不要忘記在調(diào)用函數(shù)中還要傳遞事件對(duì)象。

<div id="divl">鼠標(biāo)跟隨</div>

<script>

var divl = document.getElementByld("divl");

document.onmousemove = function(event){

    pos(divl, 10, 20,event);

}

</script>


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部