2012-06-10 19 views

回答

1

我只是将类放入href中。滚动到。

演示:http://jsfiddle.net/lucuma/jK5T3/1/

<a href=".uniqueID" >Go to post</a> 

<div style="height:1300px"></div> 

<div class="uniqueID" id="1234">This is the post </div>​ 

$('a').click(function(e) { 
    e.preventDefault(); 

    var scrollto = $(this).attr('href'); 
    $('html, body').animate({ 
      scrollTop: $(scrollto).offset().top 
     }, 1500); 
}); 

​ 

我不是100%肯定A HREF可以用一个周期开始(至于是有效的代码工作),所以备用:

<a href="#" data-link="uniqueID" >Go to post</a> 
<div style="height:1300px"></div> 
<div class="uniqueID" id="1234">This is the post </div>​ 

$('a[data-link]').click(function(e) { 
    e.preventDefault(); 

    var scrollto = '.' + $(this).attr('data-link'); 
    $('html, body').animate({ 
      scrollTop: $(scrollto).offset().top 
     }, 1500); 
}); 

最后,您可以在每个div中添加一个锚点,然后在href中像正常的本地哈希链接一样使用它。由于所有这些解决方案都需要JavaScript,我不确定这是否真的很重要,但此解决方案会将href设置为我们在加载时添加到页面上的有效本地锚点。你可以在这部分删除点击事件,它仍然可以工作,但页面会跳转而不是很好地滚动。

演示:http://jsfiddle.net/lucuma/jK5T3/3/

$('#container div').each(function() { 
    $(this).append('<a id="' + $(this).attr('class') + '" />'); 
}); 

$('a').click(function(e) { 
    e.preventDefault(); 

    var scrollto = $(this).attr('href'); 
    $('html, body').animate({ 
      scrollTop: $(scrollto).offset().top 
     }, 1500); 
}); 

+0

优秀。我发现了一个解决方案,我将这个独特的课程作为ID附加到课程中,但是我喜欢你的课程,比我现在可以使用动画课程更好。非常感谢! – elzi

+0

我刚刚通过添加一个带有ID的锚点来更新答案。如果您删除了点击事件(这可以顺利滚动),它仍然可以像您可能找到的解决方案一样工作,只是为了让他们全部回答。 – lucuma

+0

@lucuma,在你的第一个例子中,屏幕确实是滚动到元素的,但是当元素在页面的顶部时它会停止。如果我想在元素在中间时停止,有什么办法可以做到这一点? –

相关问题