2016-05-10 3 views
0

Я пытаюсь добавить гладкую прокрутку к названным якорям на моем сайте. У меня есть подключаемый модуль jQuery, который просто вызывает внутренние имена якорей и анимирует html и body. Я использовал его раньше на других сайтах, и он отлично работает, но я не могу понять, почему он здесь не работает. Как ни странно, тот же код отлично работает в Apple Safari, но не в Google Chrome. Все остальные сайты, которые я использовал, отлично работают в Chrome. Я не могу понять это.jQuery Smooth Scroll не прокрутка

Ниже приведен мой HTML. Это просто div с тегом и совпадающей точкой привязки в div ниже.

<div id="slide1" class="slide"> 
<a href="#section"> 
<div id="scrollbtn"> 
<img src="images/downarrow.png" alt="Down Arrow"> 
</div> 
</a> 
</div> 


<div id="main"> 
<a id="section" class="link"></a> 
<p>Test</p> 
</div> 

Ниже приведен JQuery плагин. Он отлично работал на других сайтах, которые я использовал, и я не понимаю, почему он здесь не работает.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
$(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 
     }, 500); 
     return false; 
     } 
    } 
    }); 
}); 
</script> 

Любая помощь будет оценена.

+0

Попробуйте изменить свой селектор от $ ('a [href * = #]: not ([href = #])') до $ ('a') и проверить его. Иногда это просто селектор, у которого есть ошибка, которую вы не можете подобрать. – Brett

+0

вам нужно указать значение ваших селекторов атрибутов '$ ('a [href^=" # "]: not ([href =" # "]')' – Steffen

ответ

0
$(function() { 
    $('a').bind('click',function(event){ 
     var $anchor = $(this); 

     $('html, body').stop().animate({ 
      scrollTop: $($anchor.attr('href')).offset().top 
     }, 800); 
     event.preventDefault(); 
    }); 
}); 

Это еще один способ сделать это.

Codepen

Оставьте вам Codepen работает. Дайте мне знать, что дает вам проблемы.

+0

Это все еще не сработало. Я думаю, что это что-то в Chrome, который блокирует его. Он не перескакивает на якорь без прокрутки, он просто не перемещается. – brodym46

+0

Я обновил. Посмотрите на кодировщик, и если все еще не работает, сообщите мне об этом посмотреть, что происходит. –

+0

Он все еще не работает. Даже не тот код не работает, и он просто прыгает прямо на якорь, страница просто не двигается. Когда я вынимаю код, он прыгает прямо на правильное место. – brodym46

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