New help panel that slides in from the top and pushes the content down so it is not covered. Panel toggles with help button. Still some bugs with small screen viewing.

This commit is contained in:
Andrew Manning
2016-04-17 07:09:42 -04:00
parent ce582ccada
commit d7fe48d1b6
3 changed files with 254 additions and 205 deletions

View File

@@ -69,13 +69,48 @@ function makeFullScreen(full) {
}
/* contextual help */
$(document).mouseup(function (e) {
var container = $("#help-content");
$('.help-content').css('top', '-' + $('#help-content').height() + 'px')
$(document).mouseup(function (e)
{
e.preventDefault;
var container = $("#help-content");
if ((!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0 // ... nor a descendant of the container
&& container.hasClass('help-content-open'))
||
(
($('#help_nav_btn').is(e.target) || $('#help_nav_btn').has(e.target).length !== 0)
&& container.hasClass('help-content-open')
)) {
container.removeClass('help-content-open');
$('main').removeClass('help-content-open');
$('main').css('top', 'auto')
}
else if (($('#help_nav_btn').is(e.target) || $('#help_nav_btn').has(e.target).length !== 0)
&& !container.hasClass('help-content-open')) {
$('#help-content').addClass('help-content-open');
$('main').removeClass('help-content-open');
var mainTop = $('#navbar-collapse-1').height();
if ($('#navbar-collapse-1').height() < $('#help-content').height()) {
mainTop = $('#help-content').height();
}
$('main').css('top', +mainTop + +50 + 'px');
}
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0 // ... nor a descendant of the container
&& container.hasClass('help-content-open'))
{
container.removeClass('help-content-open');
}
});
var contextualHelpFocus = function (target, openSidePanel) {
if (openSidePanel) {
$("main").addClass('region_1-on'); // Open the side panel to highlight element
} else {
$("main").removeClass('region_1-on');
}
// Animate the page scroll to the element and then pulse the element to direct attention
$('html,body').animate({scrollTop: $(target).offset().top - $('#navbar-collapse-1').height() - $('#help-content').height() - 50}, 'slow');
for (i = 0; i < 3; i++) {
$(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0);
}
}