Sticky navbar

This commit is contained in:
Damillora 2020-12-26 17:06:05 +07:00
parent 51f2277fd4
commit 9eac829d0f

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div :class="{ 'site-header': true, 'enabled': menu_shown }"> <div :class="{ 'site-header': true, 'enabled': menu_shown, 'detached': detached }">
<div :class="{ 'site-background': true, 'enabled': menu_shown }"></div> <div :class="{ 'site-background': true, 'enabled': menu_shown }"></div>
<div class="site-header-inner"> <div class="site-header-inner">
<header> <header>
@ -62,8 +62,24 @@ export default {
data() { data() {
return { return {
menu_shown: false, menu_shown: false,
scrollY: 0,
originTop: 0,
detached: false,
}; };
}, },
mounted() {
window.addEventListener('scroll', (e) => {
this.scrollY = Math.round(window.scrollY);
})
this.originTop = this.$el.getBoundingClientRect().top;
},
watch: {
scrollY(newValue) {
const rect = this.$el.getBoundingClientRect();
const newTop = this.scrollY;
this.detached = newTop > 64;
}
},
} }
</script> </script>
@ -124,6 +140,9 @@ export default {
.site-header.enabled .site-header-inner { .site-header.enabled .site-header-inner {
background: rgba(0,0,0,0.5); background: rgba(0,0,0,0.5);
} }
.site-header.detached .site-header-inner {
background: rgba(0,0,0,0.5);
}
header { header {
@apply flex flex-col transition duration-300 ease-in-out; @apply flex flex-col transition duration-300 ease-in-out;
} }