Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 平滑滚动停止工作-我做错了什么?_Javascript_Jquery_Wordpress_Scroll_Smooth Scrolling - Fatal编程技术网

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

Javascript 平滑滚动停止工作-我做错了什么?,javascript,jquery,wordpress,scroll,smooth-scrolling,Javascript,Jquery,Wordpress,Scroll,Smooth Scrolling,我已经在我的主页上实现了,它工作得非常好,直到我决定重建我的主页。现在它根本不起作用了 这里有一段关于我所做的事情的历史。我正在尝试建立一个单页滚动网站。最初,我在Wordpress中创建了一个页面,并插入了三个div,分别是“about”、“work”和“contact”。我实现了平滑滚动片段,一切都很顺利。然而,后来我决定做更多的研究,在此期间发现了Wordpress自定义帖子类型的魔力。我决定用一个自定义模板(page include.php)重建我的主页,该模板使用WP_查询包含3个不同

我已经在我的主页上实现了,它工作得非常好,直到我决定重建我的主页。现在它根本不起作用了

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


如果有帮助的话。另外,如果您想知道,我的主题是基于。

JavaScript执行时发生错误,这就是脚本退出的原因,因此不会应用平滑滚动

我已经看到,
plugins.js
中的脚本在
href
的开头用散列(#)遍历所有链接。不幸的是,导航栏中有这样一个链接:

现在,您的网站中没有类似
的部分,这就是脚本抛出错误的原因

问题在于plugins.js中的这行代码,大约是第30行:

var targetOffset = $target.offset().top;
$target为空,请尝试
alert($target.length)
console.log($target.length)
获取证据。现在要解决此问题,请更改此行:

if (target) {
为此:

if (target && $target.length) {

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

您是否比较了HTML源代码以查看是否缺少某些内容。例如,一个脚本。非常感谢!这真是太好了。还有一个问题:您如何知道JS执行时发生了错误?我试图找出如何检查它,但我不知道该去哪里看……一般来说,Firefox、Chrome、Safari,甚至IE都有一个内置控制台,可以输出错误。我最好使用Chrome,它有最好的功能。还有一件事:当我点击其中一个链接时,页面会向下滚动到正确的位置,然后再向上跳一点。我以前以为我已经知道了这一点(通过做这个
padding top:80px;margin top:-80px;
),但现在不管我如何更改边距和填充,它仍然会跳跃。我知道我可以删除这行
location.hash=target和它将工作,但我不想失去URL更改。如何在保留URL更改的同时修复此问题?抱歉一直问这么多问题。抱歉,我真的不知道如何解决这个问题。你是对的,散列更改是页面跳转的原因。更改后,浏览器跳转到具有相应id的
位置。不幸的是
事件.preventDefault()
返回false
没有帮助。我发现有人建议在
href
上使用与id不同的名称,比如
href=“#about”
id=“section about”
。然后在移动到div之前用JS添加“section-”。