2013-11-30 6 views
1

Я использую следующий код, чтобы иметь плавный скроллинг на якорь ссылкиSmooth Якорь Ссылка прокрутке Конфликт

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

Однако это конфликты с некоторыми скрытыми дивы, которые я использую для отображения информации. Вот один пример.

<div style="display:none;"> 
<div id="contact-email" > 
[gravityform id=15 ajax=true title=false description=false tabindex=20] 
</div> 
</div> 

Если я использую код выше, скрытые divs вообще не отображаются.

Можно ли исключить анкерные ссылки, которые соответствуют моим скрытым дивы - У меня есть только пара ..

ответ

4

ОК решение использовать:

$(".scroll").click(function(event){  
     event.preventDefault(); 
     $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500); 
    }); 

, а затем использовать

<a href="#comments" class="scroll">Scroll to comments</a> 

для якорных соединений, которые я хотел бы иметь гладкую прокрутку.

Мне просто интересно, насколько эффективен и совместим с браузером этот код.

Смежные вопросы