use MkStickyContainer (#9000)
This commit is contained in:
parent
7b7fe019c0
commit
de24131993
3 changed files with 14 additions and 33 deletions
|
@ -8,7 +8,6 @@ import tooltip from './tooltip';
|
||||||
import hotkey from './hotkey';
|
import hotkey from './hotkey';
|
||||||
import appear from './appear';
|
import appear from './appear';
|
||||||
import anim from './anim';
|
import anim from './anim';
|
||||||
import stickyContainer from './sticky-container';
|
|
||||||
import clickAnime from './click-anime';
|
import clickAnime from './click-anime';
|
||||||
import panel from './panel';
|
import panel from './panel';
|
||||||
import adaptiveBorder from './adaptive-border';
|
import adaptiveBorder from './adaptive-border';
|
||||||
|
@ -24,7 +23,6 @@ export default function(app: App) {
|
||||||
app.directive('appear', appear);
|
app.directive('appear', appear);
|
||||||
app.directive('anim', anim);
|
app.directive('anim', anim);
|
||||||
app.directive('click-anime', clickAnime);
|
app.directive('click-anime', clickAnime);
|
||||||
app.directive('sticky-container', stickyContainer);
|
|
||||||
app.directive('panel', panel);
|
app.directive('panel', panel);
|
||||||
app.directive('adaptive-border', adaptiveBorder);
|
app.directive('adaptive-border', adaptiveBorder);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
import { Directive } from 'vue';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
mounted(src, binding, vn) {
|
|
||||||
//const query = binding.value;
|
|
||||||
|
|
||||||
const header = src.children[0];
|
|
||||||
const body = src.children[1];
|
|
||||||
const currentStickyTop = getComputedStyle(src).getPropertyValue('--stickyTop') || '0px';
|
|
||||||
src.style.setProperty('--stickyTop', `calc(${currentStickyTop} + ${header.offsetHeight}px)`);
|
|
||||||
if (body) body.dataset.stickyContainerHeaderHeight = header.offsetHeight.toString();
|
|
||||||
header.style.setProperty('--stickyTop', currentStickyTop);
|
|
||||||
header.style.position = 'sticky';
|
|
||||||
header.style.top = 'var(--stickyTop)';
|
|
||||||
header.style.zIndex = '1';
|
|
||||||
},
|
|
||||||
} as Directive;
|
|
|
@ -1,12 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-sticky-container class="yrzkoczt">
|
<MkStickyContainer>
|
||||||
<MkTab v-model="include" class="tab">
|
<template #header>
|
||||||
|
<MkTab v-model="include" :class="$style.tab">
|
||||||
<option :value="null">{{ $ts.notes }}</option>
|
<option :value="null">{{ $ts.notes }}</option>
|
||||||
<option value="replies">{{ $ts.notesAndReplies }}</option>
|
<option value="replies">{{ $ts.notesAndReplies }}</option>
|
||||||
<option value="files">{{ $ts.withFiles }}</option>
|
<option value="files">{{ $ts.withFiles }}</option>
|
||||||
</MkTab>
|
</MkTab>
|
||||||
|
</template>
|
||||||
<XNotes :no-gap="true" :pagination="pagination"/>
|
<XNotes :no-gap="true" :pagination="pagination"/>
|
||||||
</div>
|
</MkStickyContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
@ -33,12 +35,10 @@ const pagination = {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" module>
|
||||||
.yrzkoczt {
|
.tab {
|
||||||
> .tab {
|
|
||||||
margin: calc(var(--margin) / 2) 0;
|
margin: calc(var(--margin) / 2) 0;
|
||||||
padding: calc(var(--margin) / 2) 0;
|
padding: calc(var(--margin) / 2) 0;
|
||||||
background: var(--bg);
|
background: var(--bg);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue