Elementï¼mouseenter äºä»¶
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
mouseenter äºä»¶å¨å®ç¹è®¾å¤ï¼é常æé¼ æ ï¼é¦æ¬¡ç§»å¨å°å
ç´ çæ¿æ´»åºåå
æ¶ï¼å¨è¯¥å
ç´ ä¸è§¦åã
è¯æ³
å¨ç±»ä¼¼ addEventListener() è¿æ ·çæ¹æ³ä¸ä½¿ç¨äºä»¶åç§°ï¼æè
设置äºä»¶å¤çå¨å±æ§ã
addEventListener("mouseenter", (event) => {});
onmouseenter = (event) => {};
äºä»¶ç±»å
ä¸ä¸ª MouseEventãç»§æ¿èª Eventã
äºä»¶å±æ§
è¿ä¸ªæ¥å£ä¹ç»§æ¿å
¶ç¶æ¥å£ UIEvent å Event ç屿§ã
MouseEvent.altKeyåªè¯»-
å½é¼ æ äºä»¶è¢«è§¦åæ¶ï¼å¦æ alt é®å·²è¢«æä¸ï¼è¿å
trueã -
触åé¼ æ äºä»¶æ¶ï¼æä¸æé®çç¼å·ï¼å¦æéç¨ï¼ã
-
触åé¼ æ äºä»¶æ¶æä¸çæé®ï¼å¦æåå¨ï¼ã
MouseEvent.clientXåªè¯»-
é¼ æ æéç¸å¯¹äºå±é¨ DOM å ç´ ç X è½´åæ ã
MouseEvent.clientYåªè¯»-
é¼ æ æéç¸å¯¹äºå±é¨ DOM å ç´ ç Y è½´åæ ã
MouseEvent.ctrlKeyåªè¯»-
å½é¼ æ äºä»¶è¢«è§¦åæ¶ï¼å¦æ control é®å·²è¢«æä¸ï¼è¿å
trueã MouseEvent.layerXåªè¯»-
è¿åäºä»¶ç¸å¯¹äºå½åå±çæ°´å¹³åæ ã
MouseEvent.layerYåªè¯»-
è¿åäºä»¶ç¸å¯¹äºå½åå±çåç´åæ ã
MouseEvent.metaKeyåªè¯»-
å½é¼ æ äºä»¶è¢«è§¦åæ¶ï¼å¦æ meta é®å·²è¢«æä¸ï¼è¿å
trueã MouseEvent.movementXåªè¯»-
é¼ æ æéç¸å¯¹äºæå䏿¬¡
mousemoveäºä»¶ä½ç½®ç X è½´åæ ã MouseEvent.movementYåªè¯»-
é¼ æ æéç¸å¯¹äºæå䏿¬¡
mousemoveäºä»¶ä½ç½®ç Y è½´åæ ã MouseEvent.offsetXåªè¯»-
é¼ æ æéç¸å¯¹äºç®æ èç¹çå å¡«å è¾¹ç X è½´åæ ã
MouseEvent.offsetYåªè¯»-
é¼ æ æéç¸å¯¹äºç®æ èç¹çå å¡«å è¾¹ç Y è½´åæ ã
MouseEvent.pageXåªè¯»-
é¼ æ æéç¸å¯¹äºæ´ä¸ªææ¡£ç X è½´åæ ã
MouseEvent.pageYåªè¯»-
é¼ æ æéç¸å¯¹äºæ´ä¸ªææ¡£ç Y è½´åæ ã
-
äºä»¶ç次è¦ç®æ ï¼å¦æåå¨ï¼ã
MouseEvent.screenXåªè¯»-
é¼ æ æéç¸å¯¹äºå±å¹ç X è½´åæ ã
MouseEvent.screenYåªè¯»-
é¼ æ æéç¸å¯¹äºå±å¹ç Y è½´åæ ã
MouseEvent.shiftKeyåªè¯»-
å½é¼ æ äºä»¶è¢«è§¦åæ¶ï¼å¦æ shift é®å·²è¢«æä¸ï¼è¿å
trueã MouseEvent.mozInputSourceåªè¯»-
çæäºä»¶ç设å¤ç±»åï¼
MOZ_SOURCE_*常éä¹ä¸ï¼ãä¾å¦ï¼è¿è®©ä½ å³å®é¼ æ äºä»¶æ¯å¦ç±å®é çé¼ æ è¿æ¯è§¦æ¸äºä»¶çæï¼è¿å¯è½ä¼å¨ä¸å®ç¨åº¦å½±åä½ å¯¹äºä»¶ç¸å ³åæ 夿çåç¡®æ§ï¼ã MouseEvent.webkitForceåªè¯»-
å廿¶æ½å çååã
MouseEvent.xåªè¯»-
MouseEvent.clientXçå«åã MouseEvent.yåªè¯»-
MouseEvent.clientYçå«åã
使ç¨è¯´æ
å°½ç®¡ä¸ mouseover 类似ï¼ä½æ¯ mouseenter çä¸åä¹å¤å¨äºå½é¼ æ æéä»å®å代çç©ç空é´ç§»å¨å°å®èªå·±çç©çç©ºé´æ¶ï¼å®ä¸ä¼å泡ï¼ä¹ä¸ä¼åéç»å®çä»»ä½å代ã
mouseenter äºä»¶çè¡ä¸º
ç§»å
¥æ¶ï¼ä¸ä¸ª mouseenter äºä»¶ä¼å屿¬¡ç»æä¸çæ¯ä¸ªå
ç´ åéä¸ä¸ªé¼ æ è¾å
¥äºä»¶ãå¨è¿éï¼å½æéå°è¾¾ææ¬æ¶ï¼å个äºä»¶è¢«åéå°å±æ¬¡ç»æä¸çå个å
ç´ ã
mouseover äºä»¶çè¡ä¸º
å个 mouseover äºä»¶è¢«åéå° DOM æ ææ·±çå
ç´ ä¸ï¼ç¶åå®ä¼æå±æ¬¡ç»æå泡ï¼ç´å°å®è¢«å¤çç¨åºåæ¶æè
å°è¾¾æ ¹å
ç´ ã
ç±äºå±æ¬¡ç»æå¾æ·±ï¼åéå° mouseover äºä»¶å¯è½ç¸å½å¤ï¼å¹¶å¯¼è´ä¸¥éçæ§è½é®é¢ãå¨è¿ç§æ
åµä¸ï¼æå¥½æ¯çå¬ mouseenter äºä»¶ã
ç»åç¸åºç mouseleaveï¼å½é¼ æ éåºå
¶å
容åºåæ¶åå
ç´ è§¦åï¼ï¼mouseenter äºä»¶çä½ç¨ä¸ CSS 伪类 :hover é常ç¸ä¼¼ã
示ä¾
mouseover ææ¡£æä¸ä¸ªéè¿°äº mouseover å mouseenter ä¹é´åºå«ç示ä¾ã
mouseenter
以ä¸ç®åç示ä¾å±ç¤ºäºå½é¼ æ è¿å
¥åé
ç»å®çç©ºé´æ¶ï¼mouseenter äºä»¶å°æ¹å div ä¸çè¾¹æ¡ãç¶åå®ä¼å° mouseenter æ mouseleave äºä»¶è§¦å次æ°çææ¬æ·»å å°å表ä¸ã
HTML
<div id="mouseTarget">
<ul id="unorderedList">
<li>No events yet!</li>
</ul>
</div>
CSS
å div æ·»å ä¸äºæ ·å¼ï¼ä½¿å
¶æ´å å¯è§åã
#mouseTarget {
box-sizing: border-box;
width: 15rem;
border: 1px solid #333;
}
JavaScript
let enterEventCount = 0;
let leaveEventCount = 0;
const mouseTarget = document.getElementById("mouseTarget");
const unorderedList = document.getElementById("unorderedList");
mouseTarget.addEventListener("mouseenter", (e) => {
mouseTarget.style.border = "5px dotted orange";
enterEventCount++;
addListItem(`This is mouseenter event ${enterEventCount}.`);
});
mouseTarget.addEventListener("mouseleave", (e) => {
mouseTarget.style.border = "1px solid #333";
leaveEventCount++;
addListItem(`This is mouseleave event ${leaveEventCount}.`);
});
function addListItem(text) {
// ä½¿ç¨æä¾çææ¬å建æ°çææ¬èç¹
const newTextNode = document.createTextNode(text);
// å建ä¸ä¸ªæ°ç li å
ç´
const newListItem = document.createElement("li");
// å°ææ¬èç¹æ·»å å° li å
ç´
newListItem.appendChild(newTextNode);
// å°æ°å建çå表项添å å°å表ä¸
unorderedList.appendChild(newListItem);
}
ç»æ
è§è
| è§è |
|---|
| Pointer Events > # mouseenter > |
| HTML > # handler-onmouseenter > |