mirror of
https://github.com/flarum/framework.git
synced 2025-02-27 00:48:55 +08:00
Floating header
This commit is contained in:
parent
bed3207798
commit
1c53ef0a0a
@ -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
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -151,3 +151,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.DiscussionPage-discussion {
|
||||||
|
> .container.scrolled {
|
||||||
|
padding-top: ~"calc(90px + @{header-height})";
|
||||||
|
|
||||||
|
.DiscussionPage-nav {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user