jQuery Smooth Scrolling

时间:2012-05-11 17:45:05

标签: jquery html jquery-animate smooth-scrolling

我试图将平滑滚动实现到信息索引中。我看过这个jsFiddle http://jsfiddle.net/9SDLw/,我无法让它工作。代码插入到HTML文档中的位置是否重要?

这是我的代码:

JS(文件负责人):

<script type="text/javascript">
$('a').click(function(){
    $('html, body').animate({
        scrollTop: $( $(this).attr('href') ).offset().top
    }, 500);
    return false;
});​
</script>

标记:

链接

<a href = "#G" rel = "" id="G" class="anchorLink">G</a><br />

<a name = "G" id="G"><span class = "letters">G</span></a><br />

我在这里缺少什么?

2 个答案:

答案 0 :(得分:10)

<强> jsBin demo

<ul id="links">
    <li><a href="#a">Go to a</a></li>
    <li><a href="#b">Go to b</a></li>
</ul>

而不是文档中的某个地方......

<h2 id="a">Article "a"</h2>
Lorem......
<h2 id="b">Article "b"</h2>
Lorem......

JQ:

$('#links a').click(function( e ){  
    e.preventDefault();
    var targetId = $(this).attr("href");
    var top = $(targetId).offset().top;
    $('html, body').stop().animate({scrollTop: top }, 1500);
});

以上操作是使用检索到的锚href并将其用作jQuery的(id)选择器。找到ID元素,得到它的顶部offset,最后为页面设置动画。

答案 1 :(得分:-1)

您必须用

包装所有代码
$(document).ready(function(){ ... });

或只是

$(function(){ ... });