diff --git a/src/App.js b/src/App.js index 3823bd03..1da3ff7c 100644 --- a/src/App.js +++ b/src/App.js @@ -23,18 +23,6 @@ export default { style () { return { 'background-image': `url(${this.background})` } }, sitename () { return this.$store.state.config.name } }, - created () { - // this is to detect user zooming mostly - window.addEventListener('resize', this.fixSidebarWidth) - }, - mounted () { - // for some reason, at least in dev mode, dom is not ready enough at this point - // in theory calling the function directly here should be enough, but it's not - setTimeout(() => { this.fixSidebarWidth() }, 500) - }, - destroyed () { - window.removeEventListener('resize', this.fixSidebarWidth) - }, methods: { activatePanel (panelName) { this.mobileActivePanel = panelName @@ -44,17 +32,6 @@ export default { }, logout () { this.$store.dispatch('logout') - }, - fixSidebarWidth () { - // firefox - let barwidth = window.innerWidth - document.body.offsetWidth - if (document.body.offsetWidth <= 0) { - // chromium - barwidth = window.innerWidth - document.body.scrollWidth - } - // adjust the sidebar size to fit the scrollbar width to keep the gap consistently sized - document.getElementById('sidebar-container').style.width = `${345 + barwidth}px` - document.getElementById('sidebar-container').style.paddingRight = `${barwidth}px` } } } diff --git a/src/App.scss b/src/App.scss index c3c9013e..5a117f04 100644 --- a/src/App.scss +++ b/src/App.scss @@ -191,7 +191,7 @@ nav { flex-shrink: 1; } -.sidebar { +.sidebar-bounds { flex: 0; flex-basis: 35%; } @@ -222,21 +222,25 @@ nav { body { overflow-y: scroll; } - .sidebar { + .sidebar-bounds { overflow: hidden; max-height: 100vh; width: 345px; position: fixed; margin-top: -10px; - .sidebar-container { + .sidebar-scroller { height: 96vh; width: 365px; padding-top: 10px; - padding-right: 20px; + padding-right: 50px; overflow-x: hidden; overflow-y: scroll; } + + .sidebar { + width: 345px; + } } .sidebar-flexer { max-height: 96vh; diff --git a/src/App.vue b/src/App.vue index 59cfcaa6..0d004665 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,6 @@ <template> <div id="app" v-bind:style="style" class="base02-background"> - <nav class='container base01-background base04' @click="scrollToTop()"> + <nav class='container base01-background base04' @click="scrollToTop()" id="nav"> <div class='inner-nav' :style="logoStyle"> <div class='item'> <router-link :to="{ name: 'root'}">{{sitename}}</router-link> @@ -18,11 +18,13 @@ <button @click="activatePanel('timeline')" class="base01-background base04">Timeline</button> </div> <div class="sidebar-flexer" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar'}"> - <div class="sidebar" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar' }"> - <div class="sidebar-container" id="sidebar-container"> - <user-panel></user-panel> - <nav-panel></nav-panel> - <notifications v-if="currentUser"></notifications> + <div class="sidebar-bounds"> + <div class="sidebar-scroller"> + <div class="sidebar"> + <user-panel></user-panel> + <nav-panel></nav-panel> + <notifications v-if="currentUser"></notifications> + </div> </div> </div> </div>