如何判斷鼠標(biāo)是否在DIV的區(qū)域內(nèi)
今天研究了一下這個問題,也普及了一下知識吧。
方法一:
通過mouseover,mouseout來觸發(fā)事件,才判斷鼠標(biāo)是否在該區(qū)域。 但是這種方法的局限性就是,必須要觸發(fā)mouseover,或mouseout,mouseleave事件才能知道。
function chkIn()
{
div_1.innerText = "現(xiàn)在你把鼠標(biāo)移入層了!";
div_1.style.font = "normal black";
}
function chkOut()
{
div_1.innerText = "現(xiàn)在你把鼠標(biāo)移出層了!";
div_1.style.font = "bold red";
}
<div id="div_1" style="background-color:lightblue; width:400px; height:300px; "
onMouseOver="chkIn()" onMouseOut="chkOut()">This is a DIV
</div>
方法二:
function checkIn(e){
var x=window.event.clientX;
var y=window.event.clientY;
var str= ' ';
for(i=0;i <document.body.children.length;i++){
var obj=document.body.children[i];
if(x> obj.offsetLeft
&&x <(obj.offsetLeft+obj.clientWidth)
&&y> obj.offsetTop
&&y <(obj.offsetTop+obj.clientHeight)){
str+= ' <鼠標(biāo)位于層 '+obj.id+ '范圍之內(nèi)> \n ';
}else{
str+= ' <鼠標(biāo)位于層 '+obj.id+ '范圍之外> \n ';
}
}
alert(str);
}
document.onclick=checkIn
方法三:
這個方法是最簡單的實用的。
if(myDiv.contains(window.event.srcElement))
即 if(myDiv.contains(鼠標(biāo)位置的元素對象))
具體情況還是要根據(jù)自己需要來選擇,我是調(diào)試了一下方法三,但是具體也沒使用上。 其他方法,繼續(xù)研究中。
相關(guān)文章
JavaScript將數(shù)組轉(zhuǎn)換為鏈表的方法
這篇文章主要介紹了JavaScript將數(shù)組轉(zhuǎn)換為鏈表的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02JS實現(xiàn)隨機(jī)生成10個手機(jī)號的方法示例
這篇文章主要介紹了JS實現(xiàn)隨機(jī)生成10個手機(jī)號的方法,涉及javascript數(shù)值運(yùn)算與隨機(jī)數(shù)操作相關(guān)使用技巧,需要的朋友可以參考下2018-12-12js中關(guān)于require與import的區(qū)別及說明
這篇文章主要介紹了js中關(guān)于require與import的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10JS target與currentTarget區(qū)別說明
target在事件流的目標(biāo)階段;currentTarget在事件流的捕獲,目標(biāo)及冒泡階段。只有當(dāng)事件流處在目標(biāo)階段的時候,兩個的指向才是一樣的,而當(dāng)處于捕獲和冒泡階段的時候,target指向被單擊的對象而currentTarget指向當(dāng)前事件活動的對象(一般為父級)。2011-08-08