jquery模擬實(shí)現(xiàn)鼠標(biāo)指針停止運(yùn)動(dòng)事件
本文實(shí)例講解了鼠標(biāo)指針停止運(yùn)動(dòng)觸發(fā)事件實(shí)例代碼,分享給大家供大家參考,具體內(nèi)容如下
在js中有有內(nèi)置的鼠標(biāo)各種事件,比如click事件,mousemove事件等等,但是并沒有鼠標(biāo)指針停止運(yùn)動(dòng)這個(gè)事件,下面就利用jquery模擬實(shí)現(xiàn)此效果,希望能夠給需要的朋友帶來(lái)一定的幫助。
代碼如下:
<html>
<head>
<meta charset="gb2312">
<title>鼠標(biāo)指針停止運(yùn)動(dòng)</title>
<style type="text/css">
#top
{
width:200px;
height:100px;
background-color:#ccc;
}
#bottom
{
width:200px;
height:100px;
background-color:#ccc;
}
</style>
<script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
(function($){
$.fn.moveStopEvent = function(callback){
return this.each(function(){
var x = 0,
y = 0,
x1 = 0,
y1 = 0,
isRun = false,
si,
self = this;
var sif = function(){
si = setInterval(function(){
if(x == x1 && y ==y1)
{
clearInterval(si);
isRun = false;
callback && callback.call(self);
}
x = x1;
y = y1;
}, 500);
}
$(this).mousemove(function(e){
x1 = e.pageX;
y1 = e.pageY;
!isRun && sif(), isRun = true;
}).mouseout(function(){
clearInterval(si);
isRun = false;
});
});
}
})(jQuery);
$(function(){
$("#top,#bottom").moveStopEvent(function(){
alert($(this).attr("id"));
})
})
</script>
</head>
<body>
<div id="top">腳本之家一</div>
<br/>
<div id="bottom">腳本之家二</div>
</body>
</html>
以上代碼實(shí)現(xiàn)了我們的要求,當(dāng)鼠標(biāo)指針在div中停止移動(dòng)之后,就會(huì)彈出相應(yīng)div的id屬性值,下面介紹一下它的實(shí)現(xiàn)過程。
代碼注釋:
1.(function($){}(jQuery),聲明一個(gè)匿名函數(shù),并執(zhí)行此函數(shù),參數(shù)為jQuery對(duì)象。
2.$.fn.moveStopEvent=function(callback{}),為jQuery實(shí)例對(duì)象添加函數(shù)。
3.return this.each(function(){}),遍歷jQuery對(duì)象集合中的每一個(gè)DOM元素對(duì)象,并且使用此對(duì)象作為上下文去執(zhí)行函數(shù),也就是說function中的this是指向每一個(gè)DOM對(duì)象的。
4.var x=0,y=0,聲明變量x和y并賦初值為0,用來(lái)存儲(chǔ)鼠標(biāo)指針的上一個(gè)坐標(biāo)。
5.var x1=0,y1=0,聲明變量x1和y1并賦初值為0,用來(lái)存鼠標(biāo)指針當(dāng)前坐標(biāo)。
6.var isRun = false,聲明一個(gè)標(biāo)記,說明鼠標(biāo)指針是否在移動(dòng)。
7.var timer=null,聲明一個(gè)標(biāo)記,作為定時(shí)器函數(shù)的返回值。
8.var self=this,將當(dāng)前DOM對(duì)象的引用賦值給self變量。
9.var sif=function(){},聲明一個(gè)函數(shù)用來(lái)判斷鼠標(biāo)指針是否停止運(yùn)動(dòng)。
10.timer=setInterval(function(){},500),每隔500毫秒執(zhí)行一次函數(shù),如果500毫秒內(nèi)鼠標(biāo)指針沒有位置變化,就認(rèn)定已經(jīng)停止移動(dòng)。
11.x = x1,y = y1,將鼠標(biāo)指針的當(dāng)前坐標(biāo)存入x和y。
12.$(this).mousemove(function(e){}),為當(dāng)前對(duì)象注冊(cè)mousemove事件處理函數(shù)。
13.x1 = e.pageX,將當(dāng)前鼠標(biāo)指針橫坐標(biāo)存入x1.
14.y1 = e.pageY,將當(dāng)前鼠標(biāo)縱坐標(biāo)存入y1.
15.!isRun && sif(),isRun = true,如果當(dāng)前鼠標(biāo)出于沒有移動(dòng)狀態(tài),那么就執(zhí)行sif()函數(shù),并且將isRun設(shè)置為true。也就是說當(dāng)鼠標(biāo)指針一直在移動(dòng)的時(shí)候,保證只會(huì)執(zhí)行一次sif()函數(shù),否則可能會(huì)執(zhí)行很多此此函數(shù)。
16.mouseout(function(){})注冊(cè)mouseout事件處理函數(shù),當(dāng)然這是使用的鏈?zhǔn)秸{(diào)用。
17.clearInterval(timer),停止定時(shí)器函數(shù)的運(yùn)行。
18.isRun = false,將變量的值設(shè)置為false,說明鼠標(biāo)已經(jīng)停止運(yùn)動(dòng)。
以上就是本文的全部?jī)?nèi)容,附有詳細(xì)的代碼注釋,希望對(duì)大家學(xué)習(xí)鼠標(biāo)事件有所幫助。
- JQuery入門——事件切換之hover()方法應(yīng)用介紹
- JQuery入門——事件切換之toggle()方法應(yīng)用介紹
- 使用JS或jQuery模擬鼠標(biāo)點(diǎn)擊a標(biāo)簽事件代碼
- jQuery 鼠標(biāo)經(jīng)過(hover)事件的延時(shí)處理示例
- jquery事件機(jī)制擴(kuò)展插件 jquery鼠標(biāo)右鍵事件
- jquery鼠標(biāo)停止移動(dòng)事件
- jQuery實(shí)現(xiàn)單擊和鼠標(biāo)感應(yīng)事件
- jquery 禁止鼠標(biāo)右鍵并監(jiān)聽右鍵事件
- jQuery響應(yīng)鼠標(biāo)事件并隱藏與顯示input默認(rèn)值
- jquery事件機(jī)制擴(kuò)展插件 jquery鼠標(biāo)右鍵事件。
- jQuery鼠標(biāo)事件總結(jié)
- jQuery實(shí)現(xiàn)鼠標(biāo)移入移出事件切換功能示例
相關(guān)文章
jQuery實(shí)現(xiàn)常見的隱藏與展示列表效果示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)常見的隱藏與展示列表效果,結(jié)合完整實(shí)例形式分析了jQuery事件響應(yīng)及針對(duì)頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06
jQuery實(shí)現(xiàn)鼠標(biāo)跟隨提示層效果代碼(可顯示文本,Div,Table,Html等)
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)跟隨提示層效果代碼,具備顯示文本,Div,Table,Html等功能.涉及jQuery針對(duì)鼠標(biāo)事件及頁(yè)面元素的相關(guān)操作技巧,需要的朋友可以參考下2016-04-04
jquery.jstree 增加節(jié)點(diǎn)的雙擊事件代碼
本文基于 jsTree 1.0-rc1 版本增加節(jié)點(diǎn)的雙擊事件。2010-07-07
jQuery實(shí)現(xiàn)checkbox全選的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)checkbox全選的方法,涉及jQuery操作頁(yè)面元素屬性及鼠標(biāo)事件響應(yīng)的相關(guān)技巧,需要的朋友可以參考下2015-06-06
jQuery設(shè)置指定網(wǎng)頁(yè)元素寬度和高度的方法
這篇文章主要介紹了jQuery設(shè)置指定網(wǎng)頁(yè)元素寬度和高度的方法,涉及jQuery操作width及height方法的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
基于jquery實(shí)現(xiàn)的銀行卡號(hào)每隔4位自動(dòng)插入空格的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于jquery實(shí)現(xiàn)的銀行卡號(hào)每隔4位自動(dòng)插入空格的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-11-11

