use MkStickyContainer (#9000)
This commit is contained in:
		| @@ -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> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 tamaina
					tamaina