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 id
function scrollTo(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"