JQuery animation callback not working

Why doesn't he fire a warning?

var $anchor = $(this); $('.hide').val($(this).attr('href')); $('html, body').animate({ scrollLeft: $($anchor.attr('href')).offset().left }, { queue: false, duration: 1000, easing: 'easeInOutCirc' }, function () { alert('test'); }); 
+4
source share
2 answers

There are several different syntax options that you can use with .animate() . When you pass a properties object and an options object (for example, you do), the completion function does not go to the options object as the third parameter:

 var $anchor = $(this); $('.hide').val($(this).attr('href')); $('html, body').animate({ scrollLeft: $($anchor.attr('href')).offset().left }, { queue: false, duration: 1000, easing: 'easeInOutCirc', complete: function () { alert('test'); } } ); 

This is fully described in the jQuery.animate () doc .

 .animate( properties, options ) properties - A map of CSS properties that the animation will move toward. options - A map of additional options to pass to the method. Supported keys: duration: A string or number determining how long the animation will run. easing: A string indicating which easing function to use for the transition. complete: A function to call once the animation is complete. step: A function to be called after each step of the animation. queue: A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string. specialEasing: A map of one or more of the CSS properties defined by the properties argument and their corresponding easing functions (added 1.4). 
+8
source

try specifying the third parameter as "complete" as follows:

 var $anchor = $(this); $('.hide').val($(this).attr('href')); $('html, body').animate({ scrollLeft: $($anchor.attr('href')).offset().left }, { queue: false, duration: 1000, easing: 'easeInOutCirc' }, complete: function () { alert('test'); }); 
+2
source

Source: https://habr.com/ru/post/1386030/


All Articles