瀏覽代碼

Amélioration du marquage au défilement

Ne marque plus que lorsqu'on s'est déplacé de plus de 50px (évite de
checker à chaque fois)
De plus, lorsque les articles sont repliés, le marquage ne marche plus
(évite donc de marquer des articles non lus)
Marien Fressinaud 12 年之前
父節點
當前提交
9758d1d736
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 10 1
      app/views/javascript/main.phtml
  2. 1 0
      public/theme/freshrss.css

+ 10 - 1
app/views/javascript/main.phtml

@@ -152,6 +152,7 @@ function inMarkViewport(flux) {
 	return (windowBot >= begin && windowBot <= bot);
 }
 
+var lastScroll = 0;
 function init_posts () {
 	init_img ();
 	<?php if($this->conf->lazyload() == 'yes') { ?>
@@ -196,8 +197,16 @@ function init_posts () {
 	<?php if ($mark['scroll'] == 'yes') { ?>
 	var flux = $('.flux');
 	$(window).scroll(function() {
+		var windowTop = $(this).scrollTop();
+		if(Math.abs(windowTop - lastScroll) <= 50) {
+			return;
+		}
+		lastScroll = windowTop;
+
 		flux.each(function() {
-			if($(this).hasClass('not_read') && inMarkViewport($(this))) {
+			if($(this).hasClass('not_read') &&
+			   $(this).children(".flux_content").is(':visible') &&
+			   inMarkViewport($(this))) {
 				mark_read($(this), true);
 			}
 		});

+ 1 - 0
public/theme/freshrss.css

@@ -337,6 +337,7 @@
 			}
 
 .content {
+	min-height: 300px;
 	max-width: 550px;
 	margin: 0 auto;
 	padding: 20px 10px;