【问题标题】:WooCommerce: Stop scrolling to error message on checkout pageWooCommerce:停止滚动到结帐页面上的错误消息
【发布时间】:2019-08-02 18:24:17
【问题描述】:

如果结帐表单上有错误,WooCommerce 通常会滚动到.form.checkout。我希望它停止,因为它以某种方式干扰了 ScrollMagic.js。

如果我不将 ScrollMagic.js 加入队列,一切正常,但启用 ScrollMagic.js 后,页面只会跳到顶部。

我尝试使用$(document.body).on('checkout_error', function () { $( 'html, body' ).stop(); },但它不起作用。

如果我使用

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

控制台中没有日志消息。为什么什么都没有发生?如何停止 WooCommerce 动画?

【问题讨论】:

    标签: javascript jquery wordpress woocommerce


    【解决方案1】:

    根据this article你可以试试这个吗?

    jQuery( document ).ajaxComplete( function() {
        if ( jQuery( 'body' ).hasClass( 'woocommerce-checkout' ) || jQuery( 'body' ).hasClass( 'woocommerce-cart' ) ) {
            jQuery( 'html, body' ).stop();
        }
    } );
    

    【讨论】:

    • 不幸的是,这也不起作用。不知何故 jQuery(html, body').stop();不起作用。
    【解决方案2】:

    现在我的控制台日志出现了。我根本没有改变任何东西,但jQuery('html, body').stop(); 没有触发。

    但是通过使用 GSAP ScrollToPlugin,我现在可以滚动到 ul.woocommerce-error 使用

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

    如此处所述:https://greensock.com/ScrollToPlugin

    【讨论】:

      【解决方案3】:

      我知道这确实是个老话题,但我找到了更简单的解决方案。只需编辑 3 个通知模板(error.php、notice.php、success.php)并删除 role="alert" 即可。滚动功能找不到要滚动到的元素。

      【讨论】:

      • 您能说得更具体些吗?
      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2019-08-03
      • 2016-02-20
      • 2013-02-06
      • 2019-11-13
      • 2023-04-07
      • 2021-06-19
      • 2020-11-26
      相关资源
      最近更新 更多