Skip to content Skip to sidebar Skip to footer

Jquery Scrollto - Center Div In Window Vertically

I have a site that uses a fixed menu on the top of the page. When a link is clicked, it should scroll vertically so that the center of that target div aligns with the vertical ce

Solution 1:

Eventually figured it out. Was just being dumb with the math. Offset with the fixed header and footer as well, works for all resolutions.

// scrollTo: Smooth scrolls to target idfunctionscrollTo(target) {
    var offset;
    var scrollSpeed = 600;
        var wheight = $(window).height();
        //var targetname = target;//var windowheight = $(window).height();//var pagecenterH = windowheight/2;//var targetheight = document.getElementById(targetname).offsetHeight;if (viewport()["width"] > 767 && !jQuery.browser.mobile) {
        // Offset anchor location and offset navigation bar if navigation is fixed//offset = $(target).offset().top - document.getElementById('navigation').clientHeight;
                offset = $(target).offset().top - $(window).height() / 2 + document.getElementById('navigation').clientHeight + document.getElementById('footer').clientHeight;
    } else {
        // Offset anchor location only since navigation bar is now static
        offset = $(target).offset().top;
    }

    $('html, body').animate({scrollTop:offset}, scrollSpeed);
}

Solution 2:

I have done a simple jquery. I think that might help what you are looking for.

Please see demo

The target div stay vertically centre offset header.

Post a Comment for "Jquery Scrollto - Center Div In Window Vertically"