Javascript 锚未按预期工作
我的锚有问题。它跳转到页面的中间-没有平滑的滚动或什么都没有。我读到一些东西,当你的Javascript 锚未按预期工作,javascript,jquery,html,Javascript,Jquery,Html,我的锚有问题。它跳转到页面的中间-没有平滑的滚动或什么都没有。我读到一些东西,当你的不够长时,它将无法滚动,因此我尝试将其调高,但仍然没有任何效果 HTML 有两个元素具有相同的id属性。这是禁止的,会给你带来麻烦。从中的锚中移除id,一切都会好起来的 <li><a href="#contact" rel="" class="anchorLink">Contact</a></li> 是实际调用了单击事件,还是在渲染元素之前应用了单击?我没有调用它
不够长时,它将无法滚动,因此我尝试将其调高,但仍然没有任何效果
HTML
有两个元素具有相同的
id
属性。这是禁止的,会给你带来麻烦。从
中的锚中移除id
,一切都会好起来的
<li><a href="#contact" rel="" class="anchorLink">Contact</a></li>
是实际调用了单击事件,还是在渲染元素之前应用了单击?我没有调用它。我的脚本在外部文件中,就在标记之前。编辑:lied,在jquery之后,它在顶部。我删除了双ID,现在它将转到联系人表单,但仍然没有平滑的滚动。有什么想法吗?看一下删除dupe id的程序,它运行得很好:我错过了注释,您需要将代码包装在ready中。。。和
$(this).attr(“href”)
比$.attr()
刚刚在我的评论中写道我删除了它,现在它跳到了正确的位置,但是仍然没有平滑滚动。有什么建议吗?@user2983295有平滑的滚动。您是否查看了我的JSFIDLE示例?是否使用任何类型的onload
来包装脚本?查看我的编辑。一旦我添加了此$(文档)。准备就绪,它就不再工作了。既然它从未工作过,您怎么知道它不再工作了?
$(document).ready(function () {
$(document).on("click", 'a[href^="#"]', function () {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
});
<li><a href="#contact" rel="" class="anchorLink">Contact</a></li>
$(function() {
$('a').click(function () {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
});