2017-06-15 68 views
1

我有一個div有多個循環視頻。爲了提高性能,我有錄像暫停,直到他們使用此代碼滾動到視口中:jquery - 目標多個孩子divs單獨不同時

jQuery(window).on("load resize scroll",function(e){ 
     if (jQuery('#vid-container').visible(true)) { 
       start_vid(); 
     } else { 
      jQuery('iframe[id*="fitvid0"]').each(function() { 
       $f(this).api('pause'); 
      }); 
     } 
    }); 
}); 

function start_vid(){ 
    jQuery('iframe[id*="fitvid0"]').each(function() { 
       $f(this).api('setVolume', 0); 
       $f(this).api('play'); 
      }); 
} 

這工作,但因爲每個視頻IFRAME具有相同的ID都開始在同一時間打一次#vid - 容器進入視野。

我試着去弄清楚,我可以針對每個VID的iFrame 單獨,這樣他們就開始打逐一滾動進入視野不能同時的方式。

類似:

if (jQuery('#vid-container child2, #vid-container child3, #vid-container child4, #vid-container child5').visible(true)) { 
start_vid(); 
} 

希望,使用jquery.visible插件和Vimeo API中的start_vid()功能

+3

ID應該是唯一的,每個視頻iframe都不能有相同的ID。 – Barmar

+0

選擇器'$(「#vid-container」)'只會匹配具有該ID的第一個元素,而不是全部。它開始播放它們的原因是因爲'start_vid()'中的循環將它們全部啓動,而不僅僅是可見的。 – Barmar

+0

這就是我試圖解決的問題。這些ID是由wordpress插件 – user3638272

回答

1

檢查可見是有道理的..謝謝

PS IM。

function start_vid(){ 
    $f('iframe[id*="fitvid0"]').each(function() { 
     if ($f(this).visible(true)) { 
      $f(this).api('setVolume', 0); 
      $f(this).api('play'); 
     } 
    }); 
} 
+0

生成的!驚人!謝謝! – user3638272