WooCommerce fait généralement défiler jusqu'à .form.checkout s'il y a une erreur sur le formulaire de paiement. Je veux que cela s'arrête car cela interfère d'une manière ou d'une autre avec ScrollMagic.js.

Si je ne mets pas ScrollMagic.js dans la file d'attente, tout fonctionne bien, mais avec ScrollMagic.js activé, la page saute juste un peu vers le haut.

J'ai essayé d'utiliser $(document.body).on('checkout_error', function () { $( 'html, body' ).stop(); } mais cela ne fonctionne pas.

Si j'utilise

$(document.body).on('checkout_error', function () {
    // There was a validation error
    console.log('checkout_error triggered');
});

Il n'y a aucun message de journal dans la console. Pourquoi il ne se passe rien ? Comment arrêter l'animation WooCommerce ?

3
zeug 12 mars 2019 à 13:05

2 réponses

Meilleure réponse

Maintenant, mes journaux de console apparaissent. Je n'ai rien changé du tout, mais jQuery('html, body').stop(); ne se déclenche pas.

Mais en utilisant GSAP ScrollToPlugin, je peux maintenant faire défiler jusqu'au ul.woocommerce-error en utilisant

$(document.body).on('checkout_error', function () {
  TweenLite.to(window, 1, {scrollTo:"ul.woocommerce-error"});
  console.log('checkout_error triggered');
});

Comme décrit ici : https://greensock.com/ScrollToPlugin.

0
zeug 3 mai 2019 à 13:56

Selon cet article vous pouvez essayer cette?

jQuery( document ).ajaxComplete( function() {
    if ( jQuery( 'body' ).hasClass( 'woocommerce-checkout' ) || jQuery( 'body' ).hasClass( 'woocommerce-cart' ) ) {
        jQuery( 'html, body' ).stop();
    }
} );
3
Chapstck 12 mars 2019 à 10:14