平滑滚动停止工作-我做错了什么



我在主页上实现了CSS技巧平滑滚动片段,它一直工作得很好,直到我决定重建主页。现在它根本不起作用。

以下是我所做的一些历史。我正在尝试建立一个单页滚动网站。最初,我在Wordpress中创建了一个页面,并插入了3个div,分别叫"about"、"work"one_answers"contact"我实现了"平滑滚动"片段,一切都很顺利。然而,后来我决定做更多的研究,在研究中发现了Wordpress自定义帖子类型的魔力。我决定用一个自定义模板(pageinclude.php)重建我的主页,该模板使用WP_query包含3个不同的页面。其中两页("about"one_answers"contact")是Wordpress的实际页面,但第三页("work")只是一个自定义循环,拉动我的自定义帖子类型。长话短说,当我进入"设置">"阅读"并将主页更改为直接指向新页面时,平滑的滚动停止了工作。当你点击导航栏中的链接时,页面会跳到适当的位置,但根本不会滚动。如果我将主页设置回旧版本,滚动仍然可以正常工作。有什么关于它为什么停止工作的想法吗?

如果有帮助的话,这里是我的网站。此外,如果你想知道,我的主题是基于根。

JavaScript执行中出现错误,这就是脚本退出的原因,因此无法应用平滑滚动。

我已经看到,plugins.js中的脚本在href的开头使用散列(#)遍历所有链接。不幸的是,您的导航栏中有一个链接,如下所示:<a href="#anchor3">Anchor 3</a>

现在你的网站上没有<div id="#anchor3">这样的部分,这就是你的脚本抛出错误的原因。

问题是插件.js中的这行代码,大约第30行:

var targetOffset = $target.offset().top;

$target为空,请尝试alert($target.length)console.log($target.length)获取证明。现在要解决这个问题,请更改这一行:

if (target) {

到此:

if (target && $target.length) {

现在,在调用.offset()之前,脚本将检查jQuery选择中是否有任何元素。如果$target为空,它将不会启动,脚本将继续工作。

最新更新