div之间的平滑滚动

时间:2014-09-30 17:20:10

标签: javascript html

我有一个包含大量文本的页面,并决定使用固定的导航栏,以便更容易在各个部分之间跳转。它工作得很好,但不是让页面在div之间跳转,我想让它向上和向下滚动。

这是我到目前为止所拥有的;

 <ul>
    <li><a href="#2010">2010</a></li>
    <li><a href="#2009">2009</a></li>
    <li><a href="#2008">2008</a></li>
    <li><a href="#2007">2007</a></li>
    <li><a href="#2006">2006</a></li>
    <li><a href="#2005">2005</a></li>
    <li><a href="#2003">2003</a></li>
    <li><a href="#1999">1999</a></li>
 <ul>

    <div id="2010"></div>
    <div id="2009"></div>
    <div id="2008"></div>``
    <div id="2007"></div>
    <div id="2006"></div>
    <div id="2005"></div>
    <div id="2003"></div>
    <div id="1999"></div>

此外,它可以让指向div的li元素显示为与其他li元素不同的颜色吗?

1 个答案:

答案 0 :(得分:0)

好的,接受吧! http://jsfiddle.net/a126cwb3/11/

// handle links with @href started with '#' only
$(document).on('click', 'a[href^="#"]', function(e) {
    // target element id
    var id = $(this).attr('href');

    // target element
    var $id = $(id);
    if ($id.size() === 0) {
        return;
    }

    // prevent standard hash navigation (avoid blinking in IE)
    e.preventDefault();

    // top position relative to the document
    var pos = $(id).offset().top;

    // animated top scrolling
    $('body, html').animate({scrollTop: pos});
});