reduce NodeView header size on scroll
This commit is contained in:
@@ -8,9 +8,10 @@
|
|||||||
:is="'node-view-header-' + nodeType"
|
:is="'node-view-header-' + nodeType"
|
||||||
v-bind="{ node, mode, showOrigin }"
|
v-bind="{ node, mode, showOrigin }"
|
||||||
class="node-view-header"
|
class="node-view-header"
|
||||||
|
:class="{ scrolling }"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<node-view-body v-bind="{ node, type: nodeType, mode }" />
|
<node-view-body v-bind="{ node, type: nodeType, mode }" :class="{ scrolling }"/>
|
||||||
|
|
||||||
<node-view-footer
|
<node-view-footer
|
||||||
v-bind="{ node, mode, type: nodeType, preview, showOrigin }"
|
v-bind="{ node, mode, type: nodeType, preview, showOrigin }"
|
||||||
@@ -63,6 +64,12 @@ export default {
|
|||||||
showOrigin: { type: Boolean, default: false }
|
showOrigin: { type: Boolean, default: false }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
scrolling: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
loading () {
|
loading () {
|
||||||
const dataLevel = this.mode === 'view' ? 2 : 1
|
const dataLevel = this.mode === 'view' ? 2 : 1
|
||||||
@@ -77,6 +84,25 @@ export default {
|
|||||||
if (this.forceType) return this.forceType
|
if (this.forceType) return this.forceType
|
||||||
return this.node !== undefined ? this.node.type : this.type
|
return this.node !== undefined ? this.node.type : this.type
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
onScroll ({ target }) {
|
||||||
|
const prev = this.scrolling
|
||||||
|
this.scrolling = target.scrollTop !== 0
|
||||||
|
if (this.scrolling && !prev) {
|
||||||
|
this.$el.scrollTo(0, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted () {
|
||||||
|
this.scrolling = this.$el.scrollTop !== 0
|
||||||
|
this.$el.addEventListener('scroll', this.onScroll)
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeDestroy () {
|
||||||
|
this.$el.removeEventListener('scroll', this.onScroll)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -161,6 +187,24 @@ export default {
|
|||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
|
&-ref.scrolling {
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
.edition {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-view &-body {
|
||||||
|
@include media-breakpoint-up($layout-bp) {
|
||||||
|
&-ref.scrolling {
|
||||||
|
padding-top: 4rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user