Jquery mouse stops moving events

  • 2020-03-30 00:59:07
  • OfStack


<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;
   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(){
 $("#div1,#div2").moveStopEvent(function(){
   alert($(this).attr("id"));
  }
 );
});
</script>
<div id="div1" style="width:200px;height:100px;background-color:#ccc;">div1</div>
<br/>
<div id="div2" style="width:200px;height:100px;background-color:#ccc;">div2</div>


Related articles: