Menubar - get rid of hardcoded pixel values in crm.menubar.js
authorColeman Watts <coleman@civicrm.org>
Thu, 18 Jul 2019 17:29:14 +0000 (13:29 -0400)
committerColeman Watts <coleman@civicrm.org>
Tue, 30 Jul 2019 16:28:57 +0000 (12:28 -0400)
css/crm-menubar.css
js/crm.menubar.js

index c1a0e5413f5d97c4f7c0d4880a3dfb29941ffecf..5b584524f4676dc20ffd93394ceee3f219d29662 100644 (file)
@@ -203,7 +203,7 @@ body.crm-menubar-over-cms-menu #crm-menubar-toggle-position a i {
   /* hide the button in desktop view */
   #civicrm-menu-nav .crm-menubar-toggle-btn {
     position: absolute;
-    top: -99999px;
+    top: -99999px; /* do not edit this without updating the isMobile() function in crm.menubar.js */
   }
 
   #civicrm-menu {
index 3dcc3f1de2e2bdb62f453c70cd3be44f7c55787d..bd42b8992f381d4619d80026fb1919fb7fd6331e 100644 (file)
         }
       })
         .on('resize', function() {
-          if ($(window).width() >= 768 && $mainMenuState[0].checked) {
+          if (!isMobile() && $mainMenuState[0].checked) {
             $mainMenuState[0].click();
           }
           handleResize();
   }
 
   function handleResize() {
-    if ($(window).width() >= 768 && $('#civicrm-menu').height() > 50) {
+    if (!isMobile() && ($('#civicrm-menu').height() >= (2 * $('#civicrm-menu > li').height()))) {
       $('body').addClass('crm-menubar-wrapped');
     } else {
       $('body').removeClass('crm-menubar-wrapped');
     }
   }
 
+  // Figure out if we've hit the mobile breakpoint, based on the rule in crm-menubar.css
+  function isMobile() {
+    return $('.crm-menubar-toggle-btn', '#civicrm-menu-nav').css('top') !== '-99999px';
+  }
+
   function traverse(items, itemName, op) {
     var found;
     _.each(items, function(item, index) {