【问题标题】:Smooth Scroll Not Working using JQuery in Shopify Theme Debut在 Shopify 主题首次亮相中使用 JQuery 平滑滚动不起作用
【发布时间】:2020-08-06 04:32:02
【问题描述】:

我无法在 Shopify 主题 Debut 中使用 JQuery 进行平滑滚动。

我在theme.liquid文件的</body>标签上方添加了以下代码

  <script>
  $(document).ready(function() {
  $('.smooth-scroll').on('click', function(evt) {
    evt.preventDefault();
    $('html, body').animate(
      { scrollTop: $($(this).attr('href')).offset().top},
      300
    );
  });
});
    </script>

HTML 跳转到正确的 div id,但是没有平滑滚动。

网址:https://bunc.bike/pages/test

有人能解释我做错了什么吗?

谢谢。

【问题讨论】:

    标签: html jquery frontend shopify liquid


    【解决方案1】:

    我看到您通过vendor.js 文件将jQuery 包含在您的主题中。该文件是通过带有defer="defer" 属性的&lt;script&gt; 标签引入的。

    来自javascript.info

    defer 属性告诉浏览器它应该继续处理页面,并“在后台”加载脚本,然后在加载时运行脚本。

    我怀疑如果你:

    1. vendor.js 文件的问题中包含您的代码 sn-p,或者
    2. vendor.js 文件的&lt;script&gt; 标记中删除了defer="defer" 属性

    你确实会非常流畅地滚动。

    我已经用这个小 gif 证明了我的论文。在我把你的代码粘贴到终端之后它起作用的原因是浏览器已经解析并加载了vendor文件,并且jQuery在浏览器的js环境中可用。

    【讨论】:

    • 你是个传奇!我选择了选项 1。并将代码 sn-p 添加到 vendor.js 文件中,因为我认为这对于加载时间来说是最好的。现在都在工作!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多