2017-04-13 16 views
-1

我正在嘗試在類似qz.com的視頻上進行類似滾動的幻燈片動畫效果創建。 https://qz.com/與qz.com類似的幻燈影片動畫

你知道如何用jQuery實現這個嗎?

+0

將滾動監聽器附加到主體,然後根據滾動進度相對於getBoundingClientRect()中的值設置視頻currentTime屬性。 – sboesch

+0

所以不需要使用當前時間可以實現的精靈圖像? – Joe

+0

剛剛嘗試過,在鉻合金中工作正常。無法分辨在其他瀏覽器中的情況。 如果你關心性能,qz的解決方案可能是最好的,但如果你的服務器無法渲染視頻到這樣的條紋,imho會花費太多精力。 – sboesch

回答

0

下面是一個例子:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
    var $video = $('video'); 
    var $window = $(window); 
    var totalTime = 6; // total time you want to play 

    $(window).bind('scroll', function() { 

     if($video[0].getBoundingClientRect().top < $window.height() && $video[0].getBoundingClientRect().bottom > 0) { 

      var progress = 100 - 100/($window.height() + $video.height()) * ($video[0].getBoundingClientRect().top + $video.height()); 
      $video[0].currentTime = Math.round(totalTime/100 * progress); 
      $video[0].paused = true; 

     } 

    }); 
</script> 

調整TOTALTIME控制多少秒將是可見的。 基本上,滾動函數會檢查視頻是否在視口中可見,如果是,則計算0到100%之間的進度,然後用它來計算當前時間。