html - 在 Shopify 主题首次亮相中使用 JQuery 平滑滚动不起作用
问题描述
我无法使用在 Shopify 主题 Debut 中工作的 JQuery 获得平滑滚动。
我在文件中的</body>
标签上方添加了以下代码theme.liquid
<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
有人能解释我做错了什么吗?
谢谢。
解决方案
我看到您通过vendor.js
文件将 jQuery 包含在您的主题中。该文件是通过<script>
带有defer="defer"
属性的标签引入的。
该
defer
属性告诉浏览器它应该继续处理页面,并“在后台”加载脚本,然后在加载时运行脚本。
我怀疑如果你:
- 在文件中的问题中包含您的代码片段
vendor.js
,或者 - 从文件的标签中删除了
defer="defer"
属性vendor.js
<script>
你确实会非常顺利地滚动。
我已经用这个小 gif 证明了我的论文。在我将您的代码粘贴到终端之后它起作用的原因是浏览器已经解析并加载了vendor
文件,并且jQuery
在浏览器的 js 环境中可用。
推荐阅读
- python - 循环并更新数组值直到满足条件,或者直到完成 100 次循环?
- wordpress - $wpdb 更新多个复选框
- ios - 如何为uitableviewcell的内表调用didselectrow方法
- c# - 实体框架 6.1.3 当 dbContext 处理的分离对象为空时
- c# - 为什么只能从第二道门关上?第一个保持打开
- titanium - Titanium App 无法启动并出现 ti.main.js 文件未找到错误
- mysql - 如何在mysql中选择两个不同的日期?
- javascript - 成功登录keycloak后如何与jaspersoft握手
- ruby - Ruby遍历二维数组并填充随机数据
- java - libopencv_java342.dll:找不到依赖库?