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…
	
	Add table
		Add a link
		
	
		Reference in a new issue