Skip to content
This repository was archived by the owner on Jun 24, 2021. It is now read-only.

Commit bdaa33a

Browse files
sticky nav bar
1 parent ed5fd64 commit bdaa33a

2 files changed

Lines changed: 38 additions & 9 deletions

File tree

src/components/NavBar.vue

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
2-
<nav class="navbar rounded-pill my-3 navbar-expand-lg navbar-light mx-3">
2+
<nav class="navbar navbar-expand-lg navbar-light">
33
<div class="container-fluid">
4-
<span class="navbar-brand text-white user-select-none fw-bolder fs-lg-4 fs-md-3 fs-sm-2">🔥 Xanonymous's Pending Works</span>
4+
<span class="navbar-brand text-white user-select-none fw-bolder fs-lg-4 fs-md-3 fs-sm-2">🔥 X's Pending Works</span>
55
<a href="https://github.com/Xanonymous-GitHub/me-xcc-tw" rel="noreferrer noopener" target="_blank">
66
<svg class="d-svg rounded-circle" viewBox="0 0 1 1">
77
<use xlink:href="#github.svg"/>
@@ -12,14 +12,25 @@
1212
</template>
1313

1414
<script lang="ts">
15-
import {defineComponent} from 'vue';
15+
import {defineComponent, onMounted} from 'vue';
1616
import '@/scss/components/navbar.scss'
1717
import '@/svg/github.svg'
1818
1919
export default defineComponent({
2020
name: 'NavBar',
2121
setup() {
22-
return
22+
onMounted(() => {
23+
// const el = document.querySelector(".only-one") as HTMLElement
24+
const bar = document.querySelector('.navbar') as HTMLElement
25+
const observer = new IntersectionObserver(
26+
([e]) => {
27+
bar.classList.toggle("nav__sticky", e.intersectionRatio < 1)
28+
},
29+
{threshold: [1]}
30+
);
31+
32+
observer.observe(bar);
33+
})
2334
}
2435
});
2536
</script>

src/scss/components/navbar.scss

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,33 @@
11
@import "../mixin";
22

33
nav {
4+
position: sticky !important;
5+
top: -1px;
6+
z-index: 1020;
7+
border-radius: 50rem;
8+
margin: 1rem;
9+
transition: .2s ease-in;
10+
box-shadow: none;
11+
12+
&.nav__sticky {
13+
transition: .2s ease-in;
14+
border-radius: 0;
15+
margin: 0;
16+
box-shadow: 0 5px 5px 1px rgba(0, 0, 0, 0.2);
17+
background-color: rgb(250, 250, 250);
18+
background-image: linear-gradient(135deg, white 25%, transparent 25%), linear-gradient(225deg, white 25%, transparent 25%), linear-gradient(315deg, white 25%, transparent 25%), linear-gradient(45deg, white 25%, transparent 25%);
19+
20+
.navbar-brand {
21+
transition: .2s ease-in;
22+
color: black !important;
23+
}
24+
}
25+
426
.navbar-brand {
527
font-size: inherit;
628
}
729

8-
@include d-svg(40) {
9-
@media (max-width: 576px) {
10-
display: none;
11-
}
12-
}
30+
@include d-svg(40);
1331

1432
background-color: rgb(17, 17, 17);
1533
background-position: -50px 0px, -50px 0px, 0% 0%, 0% 0%;

0 commit comments

Comments
 (0)