【问题标题】:Jquery - target multiple child divs individually not simultaneouslyJquery - 不同时单独定位多个子div
【发布时间】:2017-06-15 15:52:39
【问题描述】:

我有一个包含多个循环视频的 div。为了提高性能,我暂停了视频,直到它们使用以下代码滚动到视口中:

 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-container 进入视野,它们就会同时开始播放。

我正在尝试找出一种方法,我可以单独定位每个 vid Iframe,这样它们就可以在滚动进入视图时开始一个一个地播放不是同时。。 p>

类似:

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

希望这是有道理的......谢谢

ps im 使用 jquery.visible 插件和 vimeo api

【问题讨论】:

  • ID 应该是唯一的,每个视频 iframe 上的 ID 不能相同。
  • 选择器 $("#vid-container") 将只匹配具有该 ID 的第一个元素,而不是所有元素。它开始播放所有这些的原因是因为start_vid() 中的循环会启动它们,而不仅仅是可见的。
  • 这就是我试图解决的问题。 ID 是由 wordpress 插件生成的

标签: jquery html target children


【解决方案1】:

检查start_vid() 函数中的可见性。

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

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2012-12-23
    相关资源
    最近更新 更多