File: D:/HostingSpaces/SBogers10/tandartsmaas.komma.pro/wwwroot/js/app/modules/submenu.js
define('modules/submenu',[],function()
{
return {
initialize: function()
{
if($('#submenu').size())
{
var t = this;
t.center();
$(document).scroll(function()
{
t.center();
});
$(window).resize(function()
{
t.center();
})
}
},
center: function()
{
// Properties
var paddingTop = 60;
var paddingBottom = 60;
var $scroll = $('html, body');
var scrollTop = $scroll.scrollTop();
var $window = $(window);
var windowHeight = $window.height();
var windowBottom = scrollTop + windowHeight;
var $submenu = $('#submenu');
var submenuHeight = $submenu.height();
var submenuTop = $submenu.offset().top;
var submenuBottom = submenuTop + submenuHeight;
var $submenuList = $('#submenuList');
var submenuListHeight = $submenuList.height();
// Define viewport height
var viewportHeight;
if(windowBottom < submenuBottom)
{
viewportHeight = windowHeight - (submenuTop - scrollTop);
if(windowHeight < viewportHeight) viewportHeight = windowHeight;
}
else
{
viewportHeight = submenuBottom - scrollTop;
}
if(submenuHeight < windowHeight && windowBottom > submenuBottom) viewportHeight = submenuHeight;
// Calculate center of viewport
var centerPositionTop = (viewportHeight - submenuListHeight) / 2;
var correction = scrollTop - submenuTop;
if( correction > 0 ) centerPositionTop = centerPositionTop + correction;
// Min and max top
if(centerPositionTop < paddingTop) centerPositionTop = paddingTop;
var maxPositionTop = submenuHeight - submenuListHeight - paddingBottom;
if(centerPositionTop > maxPositionTop) centerPositionTop = maxPositionTop;
$submenuList.css({ top: centerPositionTop+'px' });
}
}
});