Плавный переход по якорям HTML


Типовая и частая задача на одностраничниках - обеспечить плавную прокрутку по якорям. Я уже давно используя для этого простой скрипт, но сейчас я его решил сделать пусть более грамостким, но более понятным и универсальным.

jQuery(function() {
    //В следующей выборке так же просто можно прописать привязку на любой элемент
    //Сейчас "якорь" определяется по наличию символа # в ссылке
    jQuery('a[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) {
                var scrl = target.offset().top;         //Получаем отступ от верхнего края
                var offset = 70;                        //Отступ от элемента в пикселях
                var speed = 1000;                       //Скорость прокрутки
                scrl = scrl - offset;                   
                jQuery('html, body').animate({
                    scrollTop: scrl
                }, speed);
                return false;
            }
        }
    });
});

anchor-smooth-scroll.js 0 Полная версия скрипта с комментариями для самых маленьких Размер: 1157 bytes

anchor-smooth-scroll.min.js 0 Версия без комментариев и ужатая Размер: 472 bytes