Скрипт jQuery обеспечивает плавную прокрутку к разным разделам с разным смещением

Я использую сценарий плавной прокрутки для своего одностраничного сайта. Он прокручивается до каждого якоря.

Из-за дизайна я не могу привязать якорь прямо к верхней части страницы. Мне пришлось создать скрытые якоря, которые находятся дальше по странице, чтобы они не привязывались точно к вершине.

Вот скрипт, который я сейчас использую:

jQuery(document).ready(function($) {
    $(".scroll").click(function(event){ 
        event.preventDefault();
        $('html,body').animate({
            scrollTop: $('[name="' + this.hash.substring(1) + '"]').offset().top
        }, 500);
    });
});

Мне сообщили, что я могу сделать смещение внутри этого скрипта. Вместо того, чтобы повсюду размещать эти маленькие скрытые якоря, я могу просто добавить что-то в конец верхней части, чтобы сместить ее на определенное количество пикселей. Было бы топ -250

$('html,body').animate({
    scrollTop:$('[name="' + this.hash.substring(1) + '"]').offset().top - 250
}, 500);

Проблема в том, что это сделает смещение всегда равным 250px, мне нужно, чтобы оно было переменным, чтобы, например, div портфолио можно было закрепить со смещением 200px, а div контакта только на 50px.

Может ли кто-нибудь помочь мне написать какой-то селектор в скрипт, который позволит мне настроить этот верхний -[переменная] в зависимости от того, к какому div привязывается?

6
задан Rory McCrossan 9 August 2012 в 09:25
поделиться