Commit aa8ff95c authored by David Suissa's avatar David Suissa
Browse files

Issue #3509584 by dydave, ressa, darkdim: Added toolbar sticky behavior...

Issue #3509584 by dydave, ressa, darkdim: Added toolbar sticky behavior setting to 'Hide on scroll-down, show on scroll-up'.
parent da09a6a7
Loading
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -21,7 +21,18 @@ toolbar.tree.hover:
  dependencies:
    - admin_toolbar/toolbar.tree

# Disable toolbar sticky behavior.
toolbar.disable_sticky:
  css:
    theme:
      css/admin_toolbar.disable_sticky.css: {}

# Enable toolbar custom sticky behavior.
toolbar.sticky_behavior:
  css:
    theme:
      css/admin_toolbar.sticky_behavior.css: {}
  js:
    js/admin_toolbar.sticky_behavior.js: {}
  dependencies:
    - admin_toolbar/toolbar.tree
+15 −3
Original line number Diff line number Diff line
@@ -19,10 +19,22 @@ function admin_toolbar_toolbar_alter(&$items) {
  ];
  $admin_toolbar_config = \Drupal::config('admin_toolbar.settings');
  $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.tree';
  $disable_sticky = $admin_toolbar_config->get('disable_sticky');
  if ($disable_sticky === TRUE) {

  // Add sticky behavior libraries based on the configuration.
  $sticky_behavior = $admin_toolbar_config->get('sticky_behavior') ?? 'enabled';
  switch ($sticky_behavior) {
    case 'disabled':
      $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.disable_sticky';
      break;

    case 'hide_on_scroll_down':
      $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.sticky_behavior';
      break;

    default:
      break;
  }

  $enable_hoverintent = $admin_toolbar_config->get('enable_hoverintent');
  if ($enable_hoverintent === TRUE) {
    // Use the hoverIntent plugin library.
+1 −1
Original line number Diff line number Diff line
menu_depth: 4
enable_hoverintent: true
disable_sticky: false
sticky_behavior: 'enabled'
+7 −3
Original line number Diff line number Diff line
@@ -8,6 +8,10 @@ admin_toolbar.settings:
    enable_hoverintent:
      type: boolean
      label: 'Enable HoverIntent'
    disable_sticky:
      type: boolean
      label: 'Disable sticky toolbar'
    sticky_behavior:
      type: string
      label: 'Sticky toolbar behavior'
      options:
        enabled: 'Enabled'
        disabled: 'Disabled'
        hide_on_scroll_down: 'Disabled: Hide on scroll-down, show on scroll-up'
+13 −0
Original line number Diff line number Diff line
/* Admin Toolbar default visible state. */
.toolbar-horizontal .toolbar-oriented .toolbar-bar {
  /* Show toolbar: simple slide down animation with a transform property. */
  transition: all 300ms ease-in-out;
  transform: translateY(0);
}

/* Admin Toolbar's sticky behavior to hide on scroll-down. */
body.toolbar-horizontal.sticky-toolbar-hidden .toolbar-oriented .toolbar-bar {
  /* Hide toolbar: slide up when scrolling down. */
  transition: all 200ms ease-out;
  transform: translateY(-220%);
}
Loading