从某些ID中排除滚动动画功能

时间:2014-11-28 08:28:52

标签: javascript jquery twitter-bootstrap animation scroll

我确实添加了一个javascript代码,用于动画滚动菜单到带有ID的每个块。 现在我添加了Bootstrap的标签,因为我的动画滚动而搞得搞乱了。 我想知道如何让我的滚动动画停止在引导标签上工作?


滚动动画代码

$(function() {
  $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html,body').animate({
          scrollTop: target.offset().top
        }, 800);
        return false;
      }
    }
  });
});



引导标签

<div role="tabpanel">

  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
  </div>

</div>

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并修复了这个问题。在代码的开头:

$(function() {
$('a[href*=#]:not([href=#])').click(function() {`

你必须在“a”中添加一个类。假设您添加了课程scrollnav

会是这样的:

$(function() {
$('a.scrollnav[href*=#]:not([href=#])').click(function() {`

因此,此代码(平滑滚动)仅适用于具有此类的a元素。

您的Java应该如下所示:

$(function() {
    $('a.scrollnav[href*=#]:not([href=#])').click(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
              var target = $(this.hash);
              target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
              if (target.length) {
                 $('html,body').animate({
                     scrollTop: target.offset().top
                 }, 800);
                 return false;
              }
          }
     });
});

菜单(或其他导航链接)中的每个a元素都必须包含班级scrollnav