我有一个菜单结构:

<ul id="creamenu" class="menuHolder">
                    <li><a id="news-1-menu" href="#/creative-events">news 1</a></li>
                    <li><a id="news-2-menu" href="#/creative-ajans">news 2</a></li>
                    <li><a id="news-3-menu" href="#/incentive-travel">news 3</a></li>
                </ul>
                <ul id="mainmenu" class="menuHolder">
                    <li><a id="about1-menu" href="#/hakkimizda">about 1</a></li>
                    <li><a id="about2-menu" href="#/haberler">about 2</a></li>
                    <li><a id="about3-menu" href="#/galeri">about 3</a></li>
                    <li><a id="about4-menu" href="#/referanslar">about 4</a></li>
                    <li><a id="about5-menu" href="#/iletisim">about 5</a></li>
</ul>

我在同一个HTML文件中有一个内容结构:
    <div id='news-1'>
        <!-- content -->
        <!-- content -->
</div>

    <div id='news-2'>
        <!-- content -->
        <!-- content -->
</div>

我想,当我点击一个项目,例如creamenu项目,转到div.e.g。
点击news-1 item,进入news-1 div.如下:http://codecanyon.net/item/fancyscroll/full_screen_preview/370241
纯jQuery有可能吗?

最佳答案

绝对有可能。试试这个:

$('#creamenu a').click(function(e) {
    var splitId = $(this).attr('id').split('-'),
        contentId = splitId[0] + '-' + splitId[1];

    e.preventDefault();

    $('html, body').animate({
      scrollTop: $('#' + contentId).offset().top
    }, 'slow');
});

使用这种特定的方法,您将需要确保在“creamenu”中链接的id前面加上相应内容的id(正如您现在所做的那样)。
只需将内容的id放在#creamenu链接的ref中,也会更加健壮。这样,如果用户没有JS活动,它仍然会跳转到内容,尽管没有动画。例如:
<li><a id="news-1-menu" href="#news-1">news 1</a></li>

那么,您的JS如下:
$('#creamenu a').click(function(e) {
    e.preventDefault();

    $('html, body').animate({
      scrollTop: $($(this).attr('href')).offset().top
    }, 'slow');
});

10-02 17:23