Floating header

This commit is contained in:
KyrneDev 2021-02-16 17:27:19 -08:00 committed by Alexander Skvortsov
parent bed3207798
commit 1c53ef0a0a
3 changed files with 60 additions and 0 deletions

View File

@ -9,6 +9,7 @@ import SplitDropdown from '../../common/components/SplitDropdown';
import listItems from '../../common/helpers/listItems'; import listItems from '../../common/helpers/listItems';
import DiscussionControls from '../utils/DiscussionControls'; import DiscussionControls from '../utils/DiscussionControls';
import PostStreamState from '../states/PostStreamState'; import PostStreamState from '../states/PostStreamState';
import ScrollListener from "../../common/utils/ScrollListener";
/** /**
* The `DiscussionPage` component displays a whole discussion page, including * The `DiscussionPage` component displays a whole discussion page, including
@ -51,6 +52,21 @@ export default class DiscussionPage extends Page {
this.bodyClass = 'App--discussion'; this.bodyClass = 'App--discussion';
} }
oncreate(vnode) {
super.oncreate(vnode);
const scrollListener = new ScrollListener((top) => {
const $hero = $('.DiscussionHero');
if ($hero.offset()) {
$hero.toggleClass('DiscussionHero--floating', top > 92);
$('.DiscussionPage-discussion').children('.container').toggleClass('scrolled', top > 92);
}
});
scrollListener.start();
scrollListener.update();
}
onremove() { onremove() {
super.onremove(); super.onremove();
// If we are indeed navigating away from this discussion, then disable the // If we are indeed navigating away from this discussion, then disable the

View File

@ -1,4 +1,7 @@
.DiscussionHero { .DiscussionHero {
z-index: 1;
.transition(all 0.4s ease);
.badges { .badges {
margin-right: 10px; margin-right: 10px;
margin-bottom: -2px; margin-bottom: -2px;
@ -18,3 +21,34 @@
display: inline; display: inline;
vertical-align: middle; vertical-align: middle;
} }
.DiscussionHero--floating {
position: fixed;
height: 50px;
width: 100%;
> .container {
padding-top: 10px !important;
}
.DiscussionHero-items {
li {
vertical-align: middle;
}
.item-title {
display: inline-block;
margin-top: -2px;
}
.tooltip {
top: unset !important;
bottom: -30px;
}
.tooltip-arrow {
top: 0;
.scale(1, -1);
}
}
}

View File

@ -151,3 +151,13 @@
} }
} }
} }
.DiscussionPage-discussion {
> .container.scrolled {
padding-top: ~"calc(90px + @{header-height})";
.DiscussionPage-nav {
margin-top: -1px;
}
}
}