У меня была задача найти скрипт, чтобы при нажатии на
.contents a[href^="#"]
происходил плавный переход к якорю на странице.
Вот я нашёл такой скрипт, но из-за него сотни ошибок и другие скрипты некоторые не работают.
<!-- Скрипт smooth scroll всех ссылок, начинающихся на # -->
<script>
/*
* Активное меню, плавный скролл landing page
*/
$(window).on('scroll', scrollBlock);
var heightMenu = $('.contents a[href^="#"]').outerHeight();
var currentLink = $('.contents a[href^="#"]');
var curTarget = '';
//Устанавливаем отступ контейнера
$('.page-wrap').css('padding-top', heightMenu);
//Плавное прокручивание по клику на элемент
$(currentLink).on('click', function(e){
$(currentLink).removeClass('active');
$(this).addClass('active');
curTarget = $(this).attr('href');
$('html, body').stop().animate({scrollTop: $(curTarget).offset().top - heightMenu}, 900);
return false;
});
//Добавляет активность меню при прокручивании документа
function scrollBlock(){
var scrollPos = $(window).scrollTop();
$(currentLink).each(function(){
curTarget = $(this).attr('href');
var ofsetTarget = Math.round($(curTarget).offset().top - heightMenu);
if(ofsetTarget <= scrollPos){
$(currentLink).removeClass('active');
$(this).addClass('active');
}
});
};
</script>
Какой лучше код для плавного скрула подойдёт?