Commit 8576e81 Sebastian Flick
committed
1 parent 4512c67 commit 8576e81 Copy full SHA for 8576e81
File tree 1 file changed +20
-2
lines changed
src/routes/textzeugen/[[sigla]]/[[thirties]]/[[verse]]
1 file changed +20
-2
lines changed Original file line number Diff line number Diff line change 1
1
<script >
2
2
import { assets } from ' $app/paths' ;
3
3
import TextzeugenSelector from ' $lib/components/TextzeugenSelector.svelte' ;
4
- import { tick } from ' svelte' ;
5
4
6
5
/** @type {import('./$types').PageData} */
7
6
export let data;
132
131
verse .scrollIntoView ({ behavior: ' smooth' , block: ' center' });
133
132
verse .parentElement .classList .add (' animate-bounce' , ' once' );
134
133
134
+ // add intersection observer that sets the currentVerse to the .verse that is currently in view
135
+ const observer = new IntersectionObserver (
136
+ (entries ) => {
137
+ entries .forEach ((entry ) => {
138
+ if (entry .isIntersecting ) {
139
+ currentVerse = entry .target .querySelector (' .verse' ).dataset .verse ;
140
+ }
141
+ });
142
+ },
143
+ {
144
+ root: node,
145
+ rootMargin: ' 0px' ,
146
+ threshold: 0.5
147
+ }
148
+ );
149
+ node .querySelectorAll (' .line' ).forEach ((line ) => observer .observe (line));
150
+
135
151
return {
136
152
update (targetVerse ) {
137
153
const verse = node .querySelector (` [data-verse="${ targetVerse} "]` );
138
154
verse .scrollIntoView ({ behavior: ' smooth' , block: ' center' });
139
155
verse .parentElement .classList .add (' animate-bounce' , ' once' );
140
156
},
141
- destroy () {}
157
+ destroy () {
158
+ observer .disconnect ();
159
+ }
142
160
};
143
161
};
144
162
let currentVerse = ` ${ data .thirties } .${ data .verse } ` ;
You can’t perform that action at this time.
0 commit comments