在URL中锚定时偏移顶部onload

时间:2017-04-28 09:37:45

标签: jquery scrolltop

我有平滑的锚滚动工作,但是当来自其他页面时它不起作用。如何修复由于固定标题引起的滚动位置?

网址:http://merck-dev.immaculate.co.uk/rebif/mri/#cis

当前的JS:

// to top right away
if ( window.location.hash ) scroll(0,0);
// void some browsers issue
setTimeout( function() { scroll(0,0); }, 1);

$(function() {

    // your current click function
    $('.scroll').on('click', function(e) {
        e.preventDefault();
        $('html, body').animate({
            scrollTop: $($(this).attr('href')).offset('100').top + 'px'
        }, 1000, 'swing');
    });

    // *only* if we have anchor on the url
    if(window.location.hash) {

        // smooth scroll to the anchor id
        $('html, body').animate({
            scrollTop: $(window.location.hash).offset('100').top + 'px'
        }, 1000, 'swing');
    }

1 个答案:

答案 0 :(得分:1)

我找到了你的问题 - 这就是解决方案:

// *only* if we have anchor on the url
if(window.location.hash) {

    var offset = -100;

    // smooth scroll to the anchor id
    $('html, body').animate({
        scrollTop: ($(window.location.hash).offset().top + offset) + 'px'
    }, 1000, 'swing');
}    

自定义偏移值以平滑滚动到所需位置