jquery模拟实现鼠标指针停止运动事件_jquery

本文实例讲解了鼠标指针停止运动触发事件实例代码,分享给大家供大家参考,具体内容如下
在js中有有内置的鼠标各种事件,比如click事件,mousemove事件等等,但是并没有鼠标指针停止运动这个事件,下面就利用jquery模拟实现此效果,希望能够给需要的朋友带来一定的帮助。
代码如下:

<html>
<head>
<meta charset="gb2312">
<title>鼠标指针停止运动</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>

以上代码实现了我们的要求,当鼠标指针在div中停止移动之后,就会弹出相应div的id属性值,下面介绍一下它的实现过程。
代码注释:
1.(function($){}(jQuery),声明一个匿名函数,并执行此函数,参数为jQuery对象。
2.$.fn.moveStopEvent=function(callback{}),为jQuery实例对象添加函数。
3.return this.each(function(){}),遍历jQuery对象集合中的每一个DOM元素对象,并且使用此对象作为上下文去执行函数,也就是说function中的this是指向每一个DOM对象的。
4.var x=0,y=0,声明变量x和y并赋初值为0,用来存储鼠标指针的上一个坐标。
5.var x1=0,y1=0,声明变量x1和y1并赋初值为0,用来存鼠标指针当前坐标。
6.var isRun = false,声明一个标记,说明鼠标指针是否在移动。
7.var timer=null,声明一个标记,作为定时器函数的返回值。
8.var self=this,将当前DOM对象的引用赋值给self变量。
9.var sif=function(){},声明一个函数用来判断鼠标指针是否停止运动。
10.timer=setInterval(function(){},500),每隔500毫秒执行一次函数,如果500毫秒内鼠标指针没有位置变化,就认定已经停止移动。
11.x = x1,y = y1,将鼠标指针的当前坐标存入x和y。
12.$(this).mousemove(function(e){}),为当前对象注册mousemove事件处理函数。
13.x1 = e.pageX,将当前鼠标指针横坐标存入x1.
14.y1 = e.pageY,将当前鼠标纵坐标存入y1.
15.!isRun && sif(),isRun = true,如果当前鼠标出于没有移动状态,那么就执行sif()函数,并且将isRun设置为true。也就是说当鼠标指针一直在移动的时候,保证只会执行一次sif()函数,否则可能会执行很多此此函数。
16.mouseout(function(){})注册mouseout事件处理函数,当然这是使用的链式调用。
17.clearInterval(timer),停止定时器函数的运行。
18.isRun = false,将变量的值设置为false,说明鼠标已经停止运动。

以上就是本文的全部内容,附有详细的代码注释,希望对大家学习鼠标事件有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, 鼠标指针
停止运动
jquery 鼠标指针样式、jquery 鼠标指针、jquery 隐藏鼠标指针、jquery鼠标指针的位置、jquery实现鼠标悬浮窗,以便于您获取更多的相关知识。

时间: 2024-08-01 11:39:18

jquery模拟实现鼠标指针停止运动事件_jquery的相关文章

jQuery实时显示鼠标指针位置和键盘ASCII码_jquery

本文通过jquery技术实现鼠标指针位置和键盘ASCII码,代码简单易懂,具体内容请看下文吧.   <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <script type="text/javascript" src="js/jquery-2.1.4.js"></s

使用JS或jQuery模拟鼠标点击a标签事件代码

 这篇文章主要介绍了使用JS或jQuery模拟鼠标点击a标签事件代码,需要的朋友可以参考下 代码如下: <a id="alink" href="abc.aspx" style="visibility: hidden;">下一步</a>  $("#alink").click(); // 触发了a标签的点击事件,但是没有触发页面跳转  document.getElementById("alink&

基于CSS3和jQuery实现跟随鼠标方位的Hover特效_jquery

今天我们来学习如何通过CSS3的特性和jQuery来创建一个感知鼠标滑动方向的hover效果.当鼠标滑进的时候,遮罩层会从上次鼠标滑出的方向滑入,当鼠标滑出的时候,遮罩层会跟随鼠标,从鼠标滑出的方向滑出.这是一个十分有趣的效果. 我们使用无序列表来组织缩略图和描述遮罩层: <ul id="da-thumbs" class="da-thumbs"> <li> <a href="http://dribbble.com/shots/

jQuery模拟select实现下拉菜单功能_jquery

用jquery模拟一淘上面的搜索下拉的功能,利用css3做箭头的动画效果. JS代码: /* * 模拟搜索下拉select * 默认调用方式:$(el).setSelect({ * optionList: [], //这里是下拉的选项,如['aa','bb'] * hiddenInput: '#optionHidden', //隐藏的input获取选中后的值,供表单提交时传值 * getOption: '#sOptionBtn', * callback: function(option){} *

jQuery模拟新浪微博首页滚动效果的方法_jquery

本文实例讲述了jQuery模拟新浪微博首页滚动效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!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/xh

jquery鼠标停止移动事件_jquery

复制代码 代码如下: <script src="jquery.js"></script><script>(function($){ $.fn.moveStopEvent = function(callback){  return this.each(function() {   var x = 0,    y = 0,    x1 = 0,    y1 = 0,    isRun = false,    si,    self = this;    

使用JS或jQuery模拟鼠标点击a标签事件代码_jquery

复制代码 代码如下: <a id="alink" href="abc.aspx" style="visibility: hidden;">下一步</a> $("#alink").click(); // 触发了a标签的点击事件,但是没有触发页面跳转 document.getElementById("alink").click(); //既触发了a标签的点击事件,又触发了页面跳转 把 &

jQuery实时显示鼠标指针位置和键盘ASCII码

<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <script type="text/javascript" src="js/jquery-2.1.4.js"></script> <script language="javascript&quo

不同的jQuery API来处理不同的浏览器事件_jquery

在今天的网络浏览器处理事件是有点困难的一部分,不同的浏览器以不同的方式处理事件.因此,要克服这些跨浏览器的问题,人们可以利用jQuery的事件处理API. jQuery是一个小的JavaScript库,提供了广大的API来处理不同的浏览器事件和效果和更大量.阅读更多有关处理使用JavaScript浏览器的用户界面效果.在本教程中,我们将探讨不同的API jQuery来处理不同的浏览器事件. Page Load事件 就绪(FN), 这是所有类型的事件,jQuery的支持的基础上.你可能想设置形式的