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 appear from './appear'; | ||||
| import anim from './anim'; | ||||
| import stickyContainer from './sticky-container'; | ||||
| import clickAnime from './click-anime'; | ||||
| import panel from './panel'; | ||||
| import adaptiveBorder from './adaptive-border'; | ||||
|  | @ -24,7 +23,6 @@ export default function(app: App) { | |||
| 	app.directive('appear', appear); | ||||
| 	app.directive('anim', anim); | ||||
| 	app.directive('click-anime', clickAnime); | ||||
| 	app.directive('sticky-container', stickyContainer); | ||||
| 	app.directive('panel', panel); | ||||
| 	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> | ||||
| <div v-sticky-container class="yrzkoczt"> | ||||
| 	<MkTab v-model="include" class="tab"> | ||||
| <MkStickyContainer> | ||||
| 	<template #header> | ||||
| 		<MkTab v-model="include" :class="$style.tab"> | ||||
| 			<option :value="null">{{ $ts.notes }}</option> | ||||
| 			<option value="replies">{{ $ts.notesAndReplies }}</option> | ||||
| 			<option value="files">{{ $ts.withFiles }}</option> | ||||
| 		</MkTab> | ||||
| 	</template> | ||||
| 	<XNotes :no-gap="true" :pagination="pagination"/> | ||||
| </div> | ||||
| </MkStickyContainer> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts" setup> | ||||
|  | @ -33,12 +35,10 @@ const pagination = { | |||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| .yrzkoczt { | ||||
| 	> .tab { | ||||
| <style lang="scss" module> | ||||
| .tab { | ||||
| 	margin: calc(var(--margin) / 2) 0; | ||||
| 	padding: calc(var(--margin) / 2) 0; | ||||
| 	background: var(--bg); | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue