javascript - Delay mousewheel function -
i'm using mousewheel , waypoints plugin scroll sections of page; problem having when scroll using apple mighty mouse scrolling sensitive , function gets triggered more once when animation complete. tried set timeout function , variable check if animation complete neither of these worked.
i replicate effect similar 1 on website.
jquery
  $('body').mousewheel(function(event, delta, deltax, deltay) {    cleartimeout(interval);    console.log('test');      $('section').waypoint(function(direction){       thisid = $(this);     },{ offset: '350' });      indexpos = thisid.index('section');      if (completed == true) {       completed = false;        var interval = "";       if (delta > 0) {           interval = settimeout(function(){             if ($(this).not(":first-child")) {                //$(this).animate(function(){                   $('html, body').stop().animate({                       scrolltop: thisid.prev().offset().top - 200                   }, 1000, 'swing' , function() { completed = true; });                 //});             }else {               $('html, body').stop().animate({                       scrolltop: thisid.offset().top - 200                   }, 1000, 'swing' , function() { completed = true;  });             }           },400);         }       else if (delta < 0) {         interval = settimeout(function(){         if ($(this).not(":first-child")) {              $('html, body').stop().animate({                   scrolltop: thisid.next().offset().top - 200               }, 1000, 'swing' , function() { completed = true; });           }           else {             $('html, body').stop().animate({                   scrolltop: thisid.offset().top - 200               }, 1000, 'swing' , function() { completed = true;  });           }           },400);       }      };                        return false; // prevent default    });      
i don't know doing: indexpos = thisid.index('section'); before doing anything, check if ins't in progress already:
$('body').mousewheel(function(event, delta, deltax, deltay) {     if($('html').is(':animated') || $('body').is(':animated')) return false;     // else, stuff... });      
Comments
Post a Comment