2017-01-11 4 views
0

У меня есть плавный свиток JS для ссылки из пункта меню на якорь дальше по странице.Удаление плавного прокрутки из вкладок

Проблема заключается в том, что, поскольку у меня есть вкладки, используемые на моей странице (которые используют #tabname) для навигации, она пытается прокручивать и при их использовании.

Есть ли легкое изменение, которое я могу сделать для JS, чтобы это не работало на вкладках?

$(document).ready(function() { 
 
    // Add smooth scrolling to all links 
 
    $("a").on('click', function (event) { 
 

 
     // Make sure this.hash has a value before overriding default behavior 
 
     if (this.hash !== "") { 
 
      // Prevent default anchor click behavior 
 
      event.preventDefault(); 
 

 
      // Store hash 
 
      var hash = this.hash; 
 

 
      // Using jQuery's animate() method to add smooth page scroll 
 
      // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area 
 
      $('html, body').animate({ 
 
       scrollTop: $(hash).offset().top 
 
      }, 800, function() { 
 

 
       // Add hash (#) to URL when done scrolling (default click behavior) 
 
       window.location.hash = hash; 
 
      }); 
 
     } // End if 
 
    }); 
 
});

+0

Лучше целевой клик элемент -> '$ ("а") на ('click'' <- цели ** ** любой якорь тегов.. – Scott

ответ

2

Вы могли бы обеспечить способ для анкерных элементов, чтобы отказаться от поведения прокрутки, например, отфильтровывать якоря с атрибутом data-no-scroll:

<a href="#tab1" data-no-scroll>Tab1</a> 

$("a").not("[data-no-scroll]").click(function() { 
    ... 
}); 
Смежные вопросы