2016-11-22 55 views
1

我想要實現一個功能,如使用JS和PHP的FB羣組中的功能,我設法從滾動操作中看到所看到的計數,但我需要知道用戶是否剛剛滾動下來或實際花費時間來閱讀它(某種滾動速度追蹤器或類似的東西)的Facebook羣組中的「看過」功能

var winTop = $(this).scrollTop(); 

     var $divs = $('.singlePost'); 

     var top = $.grep($divs, function(item) { 

      return $(item).position().top <= winTop; 
     }); 

     if (top.length > 0) { 
      var len = top.length; 
      var viewingPost = top[len-1] 
      if(! $(viewingPost).hasClass("seen")){ 

       var seenData = {"name":"postId", "value":$(viewingPost).attr('data-sharedId')} 
       parseSeenData(seenData ,viewingPost); 
      } 
     }  

以上是我沒有得到看出計數的代碼,需要獲取關於用戶的一些信息不夠花時間在每個帖子上閱讀。

回答

2

您可以使用某種計時器,計算每個帖子在看到實際設置之前「看到」的時間長度。

也許this會有幫助嗎?

我在想你可以使用類似setTimeout()的東西,併爲每個帖子添加一個視圖持續時間屬性。使用setTimeout可以在每秒查看任何帖子的情況下增加查看持續時間,然後在達到您想要的值後,將該帖子設置爲「已看到」。希望這會有所幫助,祝你好運。

+0

是的我使用超時,但有一種不同於你提到的方式,無論如何,你知道FB是如何做到這一點?我只想得到一個主意, –

+0

@LakshithaUdara我不熟悉Facebook的做法,對不起。但是,如果你在做什麼,那麼它就會起作用,對吧? –

+0

是的,我現在正在做的是獲取查看帖子,然後檢查滾動速度,如果用戶滾動速度超過閾值速度,那麼帖子將不會被計數。 –