jQuery单击链接查找具有匹配id scrollTo的div

时间:2011-02-14 14:56:00

标签: jquery hyperlink filter scrollto

我正在创建一个页面。我有以下HTML:

        <ul id="nav">
            <li><a href="#section1">Link</a></li>
            <li><a href="#section2">Link</a></li>
            <li><a href="#section3">Link</a></li>
            <li><a href="#section4">Link</a></li>
            <li><a href="#section5">Link</a></li>
            <li><a href="#section6">Link</a></li>
        </ul>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section1">
            <p>Content</p>
        </div>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section2">
            <p>Content</p>
        </div>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section3">
            <p>Content</p>
        </div>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section4">
            <p>Content</p>
        </div>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section5">
            <p>Content</p>
        </div>

        <div class="section">
            <p>Content</p>
        </div>

        <div class="section" id="section6">
            <p>Content</p>
        </div>

我希望实现的是点击链接时。使用jQuery查找与链接href具有相同id的div,然后将页面滚动到该div。谁能指出我正确的方向?我正在努力的一点是如何将id与href匹配。

非常感谢。

3 个答案:

答案 0 :(得分:3)

为每个锚标记添加点击事件。使用attr函数获取所选元素的href。

然后我使用animate函数滚动到这个元素。

$(function(){
    $('#nav li a').click(function(){
        var divID = $(this).attr('href');
        $('html,body').animate({
            scrollTop: $(divID).offset().top 
        }, {
            duration: 'slow', 
            easing: 'swing'
        }); 
    }); 
});

答案 1 :(得分:1)

尝试这样的事情:

$('#nav a').click(function(){
  $($(this).attr('href')).whatyouwant();
});

答案 2 :(得分:1)

你可以通过这种方式实现这一目标:

$('#nav li a').click(function(){
    //Scroll to targetID offsetTop.. or using the scrollTo plugin, scrolling to $($(this).attr('href'))
})

scrollTo plugin