導航:首頁 > 編程語言 > jsmouse

jsmouse

發布時間:2023-05-18 04:05:13

js中滑鼠移動事件觸發時,如何獲得當前滑鼠在哪一個元素上

首先,獲取到事件對象e,

事件來源,IE下面對應的是srcElement,FF下面是target。

下面是一個簡單的例子,兼容IE和FireFox

<!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></title>
<script type="text/javascript">
function init() {
document.body.onmousemove = function(e) {
if (!e) {
e = window.event;
}
else {
e.srcElement = e.target;
}
document.getElementById("divDebug").innerHTML = "mousemove (" + e.clientX + "," + e.clientY + ") srcElement=" + e.srcElement.tagName + "[" + e.srcElement.id + "]";
};
}
</script>
</head>
<body onload="init()">
<div id="root">
<div id="divDebug"></div>
<div id="div2">div</div>
<span id="span1">span</span>
<a href="#" id="link1">link</a>
</div>
</body>
</html>

❷ js滑鼠事件有哪些

js 滑鼠事件詳細
常用的幾個類型

onClick
HTML: 2 | 3 | 3.2 | 4
Browser: IE3 | N2 | O3 滑鼠點擊事件,多用在某個對象控制的范圍內的滑鼠點擊

onDblClick
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 滑鼠雙擊事件

onMouseDown
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 滑鼠上的按鈕被按下了

onMouseUp
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 滑鼠按下後,松開時激發的事件

onMouseOver
HTML: 2 | 3 | 3.2 | 4
Browser: IE3 | N2 | O3 當滑鼠移動到某對象范圍的上方時觸發的事件

onMouseMove
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 滑鼠移動時觸發的事件

onMouseOut
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N3 | O3 當滑鼠離開某對象范圍時觸發的事件

若想檢測滑鼠左鍵、右鍵點擊事件可以用
事件button 值來檢測
例如
document.onMouseDown =function(ev){
var oEvent = ev||event;
alert(oEvent.button);
}
此時button= 0、1、2分別對應於 滑鼠左中右

❸ JS滑鼠事件大全 JS滑鼠事件有哪些

1、如圖首先在一個文件夾下創建index.html文件。

❹ js怎麼設置滑鼠位置

在前段使用JavaScript開發獲取滑鼠當前位置來計某個功能,如何獲取滑鼠當前的位置,其實很多人都不知道怎麼做,為此我為大家整理推薦了相關的知識,希望大家喜歡。

js設置滑鼠位置的方法

新建一個html代碼頁面,在這個html頁面找到<body>,然後在這個<body>里創建一個用來顯示坐標位置的<div>,並給這個<div>添加一個id。如圖

創建<div>的代碼:

<div id="point-loc"></div>

4頁面所有代碼:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>js獲取滑鼠位置</title>

<script type="text/javascript">

document.onmousemove = function(e){

var loc = "當前位置 x:"+e.pageX+",y:"+e.pageY

document.getElementById("point-loc").innerHTML = loc;

}

</script>

</head>

<body>

<div id="point-loc"></div>

</body>

❺ JavaScript中mouseout函數一般位置

與 mouseenter 事件不同,不論滑鼠指針穿過被選元素或其子元素,都會觸發 mouseover 事件。只有在滑鼠指針穿過被選元素時,才會觸發 mouseenter 事件。
與 mouseout 事件不同,只有在滑鼠指針離開被選元素時,才會觸發 mouseleave 事件。如果滑鼠指針離開任何子元素,同樣會觸發 mouseout 事件。
  解決兩者的區別,看下面引用的例子:
  當為某個容器綁定了 onmouseover 或者onmouseout 事件時,如果這個容器中有其它元素節點,那麼滑鼠在內部移動時會頻繁觸發 onmouseover和onmouseout 事件。
  而我想要的效果是:事件僅在滑鼠進入/離開元素區域觸發一次,當滑鼠在元素區域內部移動的時候不會觸發。
  為什麼會出現這個原因呢?其實是因為事件冒泡導致的。當滑鼠移上或者移出容器中的子節點時,會分別觸發mouseover和mouseout事件,緊隨著dom樹向上冒泡傳遞,直到被事件處理程序(監聽器)捕獲捕獲或者冒泡到根節點(document或者window),也就是說事件會向它的父級對象派發。
知道了問題產生原因,那麼解決起來是不是也很簡單呢?最初我想的是取消事件冒泡,使用event.cancelBubble = true(IE)和e.stopPropagation()(其它瀏覽器),但是簡單測試後發現貌似沒有什麼效果,問題依舊,貌似冒泡停止不了,原因不明。(補充:我是測試將容器中的a鏈接節點取消冒泡,但是發現滑鼠移上移下還會觸發事件。a節點下還有span節點。難道要將容器中所有節點都取消冒泡才行?有心人可以測試,如果真的這樣,那也太惡心了,要是N多的節點,難道都要停止冒泡下?)
  其實在IE下滑鼠事件有個 mouseEnter 和 mouseLeave,這個就是移進和移處容器時觸發一次,在內部移動則不會觸發,遺憾的是只有IE支持。我們現在要做的就是「為非IE瀏覽器添加mouseEnter和mouseLeave支持」。
  我翻閱了網路最新開源的JS庫tangram,看了裡面的處理,發現貌似是單獨處理了非IE瀏覽器下的事件,使用一個叫「.event._eventFilter._crossElementBoundary(listener, e)」的方法修正mouseover和mouseout,然後封裝了個mouseEnter和mouseLeave事件。
.event._eventFilter._crossElementBoundary = function(listener, e){
var related = e.relatedTarget,
current = e.currentTarget; if(typeof related == 'undefined'){ return listener.call(current, e);
} // 如果current和related都是body,contains函數會返回false
// Firefox有時會把XUL元素作為relatedTarget
// 這些元素不能訪問parentNode屬性
// thanks jquery & mootools
//如果current包含related,說明沒有經過current的邊界
//註:.dom.contains是個定義的檢測節點是否包含的函數,下面我會講到
if(related === false || current == related || related.prefix == 'xul' || .dom.contains(current, related)){ return ;
} //調用執行
return listener.call(current, e);
};123456789101112131415161718

  網路的方法我並不喜歡,首先它只對非IE瀏覽器進行了處理,當然,它又進行了封裝,可以直接使用mouseEnter和mouseLeave;但是,我們做普通開發,沒必要這么封裝,我只是想要簡單的去掉mouseover和mouseout的這個惱人特性。
  而jQuery則不是這么做的,它是直接對IE和其它所有瀏覽器下的mouseover和mouseout事件進行了修正。參考jQuery,我得到了我目前所有的代碼。
  首先,介紹個判斷節點對象是否包含的函數contains.
function contains(p,c){
return p.contains ?
p != c && p.contains(c) : !!(p.compareDocumentPosition(c) & 16);
}1234

  然後就是重點的了,這里我們在IE下用到了fromElement和toElement,這兩個是IE下的滑鼠移上去時和移出時的節點對象。
function fixedMouse(e,target){
var related, type=e.type.toLowerCase();//這里獲取事件名字
if(type=='mouseover'){
related=e.relatedTarget||e.fromElement
}else if(type='mouseout'){
related=e.relatedTarget||e.toElement
}else return true; return related && related.prefix!='xul' && !contains(target,related) && related!==target;
}12345678910

  然後我們怎麼用呢?比如在綁定事件時,
//addListener為封裝的事件綁定函數addListener(target,'mouseover',function(e){
e=e||window.event; if(fixedMouse(e, target)){ //do something
}
},false);1234567

  這樣就會只在移入移出target節點時觸發mouseover和mouseout了。
  當然,你也可以將上面的代碼單獨封裝成mouseEnter和mouseLeave,這樣可以以後調用時更好區別mouseover和mouseout。

閱讀全文

與jsmouse相關的資料

熱點內容
cad新文件能找回來嗎 瀏覽:951
導出手機qq文件到u盤 瀏覽:456
電腦如何打開ppt文件怎麼打開方式 瀏覽:782
魅族鎖定區文件夾 瀏覽:357
刻字cnc怎麼編程 瀏覽:182
學校的網路拓撲結構圖 瀏覽:784
收集100個pdf文件里關鍵詞 瀏覽:594
蘋果關閉4g網路設置 瀏覽:289
如何監測資料庫 瀏覽:967
拷貝過來的pdf文件 瀏覽:751
抖音小店的訪客數據怎麼看 瀏覽:670
怎麼把c語言編程的字元向下移動 瀏覽:786
sql刪除文件組代碼 瀏覽:978
安卓post請求多重json 瀏覽:776
微信消除數據怎麼恢復 瀏覽:918
小米刷機顯示系統找不到指定文件 瀏覽:528
蘋果手機小風扇圖app叫什麼 瀏覽:292
繁體中文輸入工具 瀏覽:916
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781

友情鏈接