JQuery scrollTop函数转到正确的位置,然后跳回页面顶部
我使用JQuery函数JQuery scrollTop函数转到正确的位置,然后跳回页面顶部,jquery,scroll,click,scrolltop,Jquery,Scroll,Click,Scrolltop,我使用JQuery函数scrollTop在每个字母的单击函数中列出联系人号码。它会滚动到应该滚动的位置,然后立即滚动回顶部 下面是代码中函数的示例: $('.a').click(function(){ $('html, body').animate({scrollTop:$('#A').position().top}, 'slow'); }); 以下是我为其制作的JSFIDLE: 如果要将其添加到锚定标记,通常需要添加preventDefault()或return false取消导航
scrollTop
在每个字母的单击函数中列出联系人号码。它会滚动到应该滚动的位置,然后立即滚动回顶部
下面是代码中函数的示例:
$('.a').click(function(){
$('html, body').animate({scrollTop:$('#A').position().top}, 'slow');
});
以下是我为其制作的JSFIDLE:
如果要将其添加到锚定标记,通常需要添加
preventDefault()
或return false
取消导航事件
因此:
或
我还更新了您的示例,以使用jQuery1.8+中推荐的语法
编辑:正如@Karl Andre Gagnon指出的:
返回false work,因为它可以防止事件从
preventDefault阻止元素的默认操作。自从
点击一个跨度没有默认动作,它什么也不做
因此,第一个示例只有在您使用
您编写的“a”span
如下:
<span class="a">A</spam>
A
由于这个输入错误,它没有关闭。这使得每次点击(任何字母)都是在冒泡后点击“a”
只要把“m”改为“n”,一切都会好起来的
那些该死的打字错误,把整个代码都弄乱了:)啊!我试过e.preventDefault();但这不起作用,返回错误;尽管如此!谢谢Yeah返回false work,因为它防止事件冒泡,因为preventDefault阻止元素的默认操作。由于单击范围没有默认操作,因此不会执行任何操作@卡尔·安德烈·加格农(Karl AndréGagnon)在OP发表上述评论时,我也这么想。谢谢我将把答案扩大一点。
$('.a').on('click', function(e){
$('html, body').animate({scrollTop:$('#A').position().top}, 'slow');
return false;
});
<span class="a">A</spam>