function om_maximenu_action in OM Maximenu 8
Same name and namespace in other branches
- 6 inc/om_maximenu.effects.inc \om_maximenu_action()
- 7 inc/om_maximenu.effects.inc \om_maximenu_action()
Mouse actions
1 call to om_maximenu_action()
- om_maximenu_asset_loader in inc/
om_maximenu.render.inc - Loads styles and js
File
- inc/
om_maximenu.effects.inc, line 16 - OM Maximenu Effects
Code
function om_maximenu_action($action = 'hover', $menu = '', $displace = 0, $style = '', $delay = 1000, $fadeout = 1) {
$displace_menu = $displace == 1 ? "\$('#om-maximenu-" . $menu . " li.om-leaf .om-maximenu-content').css('position', 'relative').addClass('om-maximenu-displace');" : '';
if ($action == 'click_fast') {
$click_action = "\n \$(this).parent().siblings().children('.om-maximenu-content').hide(); \n \$(this).siblings('.om-maximenu-content').toggle().pause();";
}
elseif ($action == 'click_slow') {
$click_action = "\n \$(this).parent().siblings().children('.om-maximenu-content').slideUp('slow'); \n \$(this).siblings('.om-maximenu-content').toggle('slow').pause();";
}
else {
$click_action = "";
}
$click = "\n jQuery(document).ready(function(\$){" . $displace_menu . " \n \$('#om-maximenu-" . $menu . " li.om-leaf .om-maximenu-content').removeClass('om-maximenu-content-nofade');\n \$('#om-maximenu-" . $menu . " li.om-leaf .om-link').click(function() {\n\t\t\t\tif(\$(this).parent().hasClass('open')) {\n\t\t\t\t \$(this).parent().removeClass('open');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t \$('#om-maximenu-" . $menu . " li.om-leaf').removeClass('open');\n\t\t\t\t \$(this).parent().addClass('open');\n\t\t\t\t}\t\n " . $click_action . " \n return false;\n });\n }); \n ";
$fadeout_out = $fadeout == 1 ? '.fadeOut()' : '';
$hover_fade = "\n jQuery(document).ready(function(\$){" . $displace_menu . " \n \$('#om-maximenu-" . $menu . " li.om-leaf .om-maximenu-content').removeClass('om-maximenu-content-nofade');\n //\$('#om-maximenu-" . $menu . " li.om-leaf').hover(omFadeIn,omFadeOut); //native jquery\n \$('#om-maximenu-" . $menu . " li.om-leaf').hoverIntent({\n over: omFadeIn,\n timeout: " . $delay . ",\n out: omFadeOut\n }); \n function omFadeIn(){ \$('.om-maximenu-content.closed', this).fadeIn(); }\n function omFadeOut(){ \$('.om-maximenu-content.closed', this)" . $fadeout_out . "; } \n });\n ";
$hover = "jQuery(document).ready(function(\$){" . $displace_menu . " });";
if ($action == 'hover' || $action == 'click_fast') {
$tabbed_action = "\n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content .om-tabbed-content').addClass('om-tabbed-content-hide'); \n \$('#om-maximenu-" . $menu . " #' + tabbedContentId).removeClass('om-tabbed-content-hide');";
}
elseif ($action == 'hover_fade' || $action == 'click_slow') {
$tabbed_action = "\n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content .om-tabbed-content').addClass('om-tabbed-content-hide').hide(); \n \$('#om-maximenu-" . $menu . " #' + tabbedContentId).fadeIn('slow').removeClass('om-tabbed-content-hide');";
}
else {
$tabbed_action = "";
}
$tabbed_hover_js = "\n jQuery(document).ready(function(\$){\n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf:first-child').addClass('active'); \n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content div:first-child').removeClass('om-tabbed-content-hide'); \n \n \$('#om-maximenu-" . $menu . " .om-leaf .om-link').hover(\n function () {\n var leafId = \$(this).parent().attr('id');\n var tabbedContentId = leafId.replace('leaf', 'tabbed-content');\n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$(this).parent().addClass('active'); \n \n " . $tabbed_action . " \n }, function () {\n //do nothing\n });\n }); \n ";
$tabbed_click_js = "\n jQuery(document).ready(function(\$){\n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf:first-child').addClass('active'); \n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content div:first-child').removeClass('om-tabbed-content-hide'); \n \n \$('#om-maximenu-" . $menu . " .om-leaf .om-link').click(function () {\n var leafId = \$(this).parent().attr('id');\n var tabbedContentId = leafId.replace('leaf', 'tabbed-content');\n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$(this).parent().addClass('active'); \n \n " . $tabbed_action . " \n });\n }); \n ";
$flow = '';
if ($style == 'scrollv') {
$flow = "\$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content-inner').css('height', totalHeight + 'px');";
}
if ($style == 'scrollh') {
$flow = "\$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content-inner').css('width', totalWidth + 'px');";
}
if ($action == 'hover') {
$speed = 1000;
}
if ($action == 'hover_fade') {
$speed = 2000;
}
if ($action == 'click_fast') {
$speed = 750;
}
if ($action == 'click_slow') {
$speed = 1500;
}
if ($action == 'hover' || $action == 'hover_fade') {
$modal_action = 'hover';
}
if ($action == 'click_fast' || $action == 'click_slow') {
$modal_action = 'click';
}
$style_modal_js = "\n jQuery(document).ready(function(\$) {\t\n \n\t \$('#om-maximenu-" . $menu . " .om-link[rel=om-maximenu-modal]')." . $modal_action . "(function(e) {\n\t // prevent default link behavior\n\t e.preventDefault();\n\t\t\n\t // get anchor id\n\t var id = \$(this).attr('href');\n\n\t // mask height and width\n\t var om_maskHeight = \$(document).height();\n\t var om_maskWidth = \$(window).width();\n\t\n\t \$('#om-maximenu-mask').css({'width': om_maskWidth, 'height': om_maskHeight});\n\t\t\n\t // fade effect\t\n\t \$('#om-maximenu-mask').fadeIn(" . $speed . ");\t\n\t \$('#om-maximenu-mask').fadeTo('slow',0.75);\t\n\t\n\t // om-maximenu-modal-content height and width\n\t var windowHeight = \$(window).height();\n\t var windowWidth = \$(window).width();\n \n\t // set om-maximenu-modal-content to center\n\t \$(id).css('top', windowHeight/2-\$(id).height()/2);\n\t \$(id).css('left', windowWidth/2-\$(id).width()/2);\n\t\n\t // fade effect to window\n\t \$(id).fadeIn(" . $speed . "); \n\t }, function() {\n\t // do nothing\n\t });\n\t\n\t // if close button is clicked\n\t \$('.om-maximenu-modal-content .om-maximenu-close').click(function() {\n\t\t \$('#om-maximenu-mask').hide();\n\t\t \$('.om-maximenu-modal-content').hide();\n\t });\t\t\n\t\n\t // if om-maximenu-mask is clicked\n\t \$('#om-maximenu-mask').click(function() {\n\t\t \$(this).hide();\n\t\t \$('.om-maximenu-modal-content').hide();\n\t });\t\t\t\n });\n ";
$tabbed_scroll_hover_js = "\n jQuery(document).ready(function(\$){\n var contentNum = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content-inner').children().size();\n var height = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').height();\n var width = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').width();\n var totalHeight = height * contentNum;\n var totalWidth = width * contentNum;\n\n \$('#om-maximenu-" . $menu . " .om-tabbed-content').css('height', height + 'px');\n \$('#om-maximenu-" . $menu . " .om-tabbed-content').css('width', width + 'px');\n " . $flow . "\n \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf:first-child').addClass('active'); \n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content .om-tabbed-content').removeClass('om-tabbed-content-hide'); \n \n \$('#om-maximenu-" . $menu . " .om-leaf .om-link').hover(\n function () {\n var leafId = \$(this).parent().attr('id');\n var tabbedContentId = leafId.replace('leaf', 'tabbed-content');\n \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$(this).parent().addClass('active'); \n\n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').scrollTo(\$('#' + tabbedContentId), " . $speed . ");\n }, function () {\n // do nothing\n });\n }); \n ";
$tabbed_scroll_click_js = "\n jQuery(document).ready(function(\$){\n var contentNum = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content-inner').children().size();\n var height = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').height();\n var width = \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').width();\n var totalHeight = height * contentNum;\n var totalWidth = width * contentNum;\n\n \$('#om-maximenu-" . $menu . " .om-tabbed-content').css('height', height + 'px');\n \$('#om-maximenu-" . $menu . " .om-tabbed-content').css('width', width + 'px');\n " . $flow . "\n \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf:first-child').addClass('active'); \n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content .om-tabbed-content').removeClass('om-tabbed-content-hide'); \n \n \$('#om-maximenu-" . $menu . " .om-leaf .om-link').click(function () {\n var leafId = \$(this).parent().attr('id');\n var tabbedContentId = leafId.replace('leaf', 'tabbed-content');\n \n \$('#om-maximenu-" . $menu . " ul.om-menu li.om-leaf').removeClass('active'); \n \$(this).parent().addClass('active'); \n\n \$('#om-maximenu-" . $menu . " .om-maximenu-tabbed-content').scrollTo(\$('#' + tabbedContentId), " . $speed . ");\n });\n }); \n ";
$style_accordion_js = "\n jQuery(document).ready(function (\$) {\n var height = \$('#om-maximenu-" . $menu . "').height();\n var width = \$('#om-maximenu-" . $menu . "').width();\n\n \$('#om-maximenu-" . $menu . " dl.easy-accordion').css('width', width + 'px').css('height', height + 'px');\n \$('#om-maximenu-" . $menu . " dl.easy-accordion>dt').removeClass('active'); \n \$('#om-maximenu-" . $menu . " dl.easy-accordion>dd').removeClass('active'); \n\n \$('#om-maximenu-" . $menu . " dl.easy-accordion>dt:first-child').addClass('active'); \n \$('#om-maximenu-" . $menu . " dl.easy-accordion>dd:first-child').addClass('active'); \n \n \$('#om-maximenu-" . $menu . "').easyAccordion({\n autoStart: true,\n slideInterval: 5000\n //slideNum: false\n });\n }); \n ";
$style_roundabout_js = "jQuery(document).ready(function(\$) { \$('#om-menu-" . $menu . "').roundabout(); });";
if ($action == 'click_fast' || $action == 'click_slow') {
if (!empty($style)) {
if ($style == 'normal') {
drupal_add_js($tabbed_click_js, "inline");
}
elseif ($style == 'accordion') {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.easyAccordion.js');
drupal_add_js($style_accordion_js, "inline");
}
elseif ($style == 'roundabout') {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.roundabout.min.js');
drupal_add_js($style_roundabout_js, "inline");
}
elseif ($style == 'modal') {
drupal_add_js($style_modal_js, "inline");
}
else {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.scrollTo.min.js');
drupal_add_js($tabbed_scroll_click_js, "inline");
}
}
else {
drupal_add_js($click, "inline");
}
}
else {
if (!empty($style)) {
if ($style == 'normal') {
drupal_add_js($tabbed_hover_js, "inline");
}
elseif ($style == 'accordion') {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.easyAccordion.js');
drupal_add_js($style_accordion_js, "inline");
}
elseif ($style == 'roundabout') {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.roundabout.min.js');
drupal_add_js($style_roundabout_js, "inline");
}
elseif ($style == 'modal') {
drupal_add_js($style_modal_js, "inline");
}
else {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.scrollTo.min.js');
drupal_add_js($tabbed_scroll_hover_js, "inline");
}
}
else {
if ($action == 'hover_fade') {
drupal_add_js(OM_MAXIMENU_PATH . '/contrib/jquery.hoverIntent.minified.js');
drupal_add_js($hover_fade, "inline");
}
else {
if ($displace == 1) {
drupal_add_js($hover, "inline");
}
}
}
}
}