Get rid of the js to scale sidepanel, add an additional div and a css class to fix the same issue.

This commit is contained in:
shpuld 2017-11-13 12:00:08 +02:00
parent d7e4279c59
commit 4cc73cfe21
3 changed files with 16 additions and 33 deletions

View File

@ -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`
}
}
}

View File

@ -190,7 +190,7 @@ nav {
flex-shrink: 1;
}
.sidebar {
.sidebar-bounds {
flex: 0;
flex-basis: 35%;
}
@ -221,21 +221,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;

View File

@ -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>