summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-09-18 12:32:23 +0100
committerPhil Hughes <me@iamphill.com>2017-09-19 09:20:10 +0100
commit2778549e1a19af662b9872b1e456c599067e12ba (patch)
tree11db6abaf80c3a99a6d65226dab5cd113e5dc4bc
parent1f4911541d03a257c38a63c6aa36a1c7ca4c3b43 (diff)
downloadgitlab-ce-sidebar-sidebars-only-when-scroll.tar.gz
Only show the sidebar scroll bars if the user can scrollsidebar-sidebars-only-when-scroll
Closes #37972
-rw-r--r--app/assets/javascripts/new_sidebar.js11
-rw-r--r--app/assets/stylesheets/new_sidebar.scss6
2 files changed, 16 insertions, 1 deletions
diff --git a/app/assets/javascripts/new_sidebar.js b/app/assets/javascripts/new_sidebar.js
index f2eb2338a1e..997550b37fb 100644
--- a/app/assets/javascripts/new_sidebar.js
+++ b/app/assets/javascripts/new_sidebar.js
@@ -11,6 +11,7 @@ export default class NewNavSidebar {
initDomElements() {
this.$page = $('.page-with-sidebar');
this.$sidebar = $('.nav-sidebar');
+ this.$innerScroll = $('.nav-sidebar-inner-scroll', this.$sidebar);
this.$overlay = $('.mobile-overlay');
this.$openSidebar = $('.toggle-mobile-nav');
this.$closeSidebar = $('.close-nav-button');
@@ -55,6 +56,16 @@ export default class NewNavSidebar {
this.$page.toggleClass('page-with-icon-sidebar', breakpoint === 'sm' ? true : collapsed);
}
NewNavSidebar.setCollapsedCookie(collapsed);
+
+ this.toggleSidebarOverflow();
+ }
+
+ toggleSidebarOverflow() {
+ if (this.$innerScroll.prop('scrollHeight') > this.$innerScroll.prop('offsetHeight')) {
+ this.$innerScroll.css('overflow-y', 'scroll');
+ } else {
+ this.$innerScroll.css('overflow-y', '');
+ }
}
render() {
diff --git a/app/assets/stylesheets/new_sidebar.scss b/app/assets/stylesheets/new_sidebar.scss
index 8030854e527..4d5e3d1eceb 100644
--- a/app/assets/stylesheets/new_sidebar.scss
+++ b/app/assets/stylesheets/new_sidebar.scss
@@ -192,7 +192,11 @@ $new-sidebar-collapsed-width: 50px;
.nav-sidebar-inner-scroll {
height: 100%;
width: 100%;
- overflow: scroll;
+ overflow: auto;
+
+ @media (min-width: $screen-sm-min) {
+ overflow: hidden;
+ }
}
.with-performance-bar .nav-sidebar {