$(function(){ var $page_menu = $('.sticky_menu'); if ($page_menu.length) { $(window).on('load', function(){ $page_menu.data('position', 'undefined'); var MENU_OFFSET = 20, page_menu_height = $page_menu.height(), top_guide = $('header').height(), bottom_guide = $('body').height() - $('footer').height() - page_menu_height - (2 * MENU_OFFSET); function getScrollTop(){ if (typeof pageYOffset != 'undefined') { //most browsers except IE before #9 return pageYOffset; } else { var B = document.body; //IE 'quirks' var D = document.documentElement; //IE with doctype D = (D.clientHeight)? D: B; return D.scrollTop; } } function onScroll(){ var scroll = getScrollTop(); // TOP if (scroll < top_guide) { if ($page_menu.data('position') != 'top') { $page_menu.data('position', 'top'); $page_menu.css({ 'position' : 'absolute', 'top' : top_guide + MENU_OFFSET }); } } // MIDDLE else if (scroll >= top_guide && scroll < bottom_guide) { if ($page_menu.data('position') != 'middle') { $page_menu.data('position', 'middle'); $page_menu.css({ 'position' : 'fixed', 'top' : MENU_OFFSET }); } } // BOTTOM else { if ($page_menu.data('position') != 'bottom') { $page_menu.data('position', 'bottom'); $page_menu.css({ 'position' : 'absolute', 'top' : bottom_guide + MENU_OFFSET }); } } }; $page_menu.onePageNav({ currentClass: 'active' }); $(window).scroll(onScroll).trigger('scroll'); }); } });