Jelajahi Sumber

Fix shortcut problem when showing articles unfolded (#2336)

Fix https://github.com/FreshRSS/FreshRSS/issues/2328
Alexandre Alapetite 7 tahun lalu
induk
melakukan
2efab9893c
1 mengubah file dengan 4 tambahan dan 5 penghapusan
  1. 4 5
      p/scripts/main.js

+ 4 - 5
p/scripts/main.js

@@ -365,13 +365,12 @@ function toggleContent(new_active, old_active, skipping) {
 	const relative_move = context.current_view === 'global',
 	const relative_move = context.current_view === 'global',
 		box_to_move = relative_move ? document.getElementById('panel') : document.documentElement;
 		box_to_move = relative_move ? document.getElementById('panel') : document.documentElement;
 
 
-	if (context.sticky_post) {
+	if (context.sticky_post) {	//Stick the article to the top when opened
 		let prev_article = new_active.previousElementSibling,
 		let prev_article = new_active.previousElementSibling,
-			new_pos = new_active.offsetTop + document.documentElement.scrollTop,
-			old_scroll = box_to_move.scrollTop;
+			new_pos = new_active.offsetParent.offsetTop + new_active.offsetTop;
 
 
 		if (prev_article && new_active.offsetTop - prev_article.offsetTop <= 150) {
 		if (prev_article && new_active.offsetTop - prev_article.offsetTop <= 150) {
-			new_pos = prev_article.offsetTop;
+			new_pos = prev_article.offsetParent.offsetTop + prev_article.offsetTop;
 			if (relative_move) {
 			if (relative_move) {
 				new_pos -= box_to_move.offsetTop;
 				new_pos -= box_to_move.offsetTop;
 			}
 			}
@@ -382,7 +381,7 @@ function toggleContent(new_active, old_active, skipping) {
 			new_pos -= document.body.clientHeight / 4;
 			new_pos -= document.body.clientHeight / 4;
 		}
 		}
 		if (relative_move) {
 		if (relative_move) {
-			new_pos += old_scroll;
+			new_pos += box_to_move.scrollTop;
 		}
 		}
 		box_to_move.scrollTop = new_pos;
 		box_to_move.scrollTop = new_pos;
 	}
 	}