当视频出现在某个容器中时自动播放 youtube 视频

Autoplay youtube video when video appears in a certain container

<div class="lightbox-trigger"></div>

<div class="lightbox-content autoplay"><iframe>...</iframe></div>

<div class="mfp-wrap"></div>

我有 .lightbox-trigger,点击后会在 .mfp-wrap 中打开 .lightbox-content。默认情况下,.lightbox-content 是隐藏的,只有在 .mfp-wrap

中才会可见

.lightbox-content.autoplay 中有 YouTube 视频时,我希望视频在 .mfp-wrap 中出现后自动播放。

我希望这是有道理的。我尝试了这个 jQuery 但它对我不起作用...

$(".lightbox-trigger").click(function() { 
    $(".mfp-wrap .lightbox-content.autoplay iframe").attr("src").replace("?", "?autoplay=1&"); 
});

YouTube 视频嵌入 link - 添加 属性

allow="autoplay; encrypted-media";

示例 iFrame Link:

<iframe width="560" height="315" src="https://www.youtube.com/embed/iVe__Py2GuU" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

示例:

$(".lightbox-trigger").click(function() { 
    $(".mfp-wrap .lightbox-content.autoplay iframe").attr("src").replace("?", "?allow=autoplay; encrypted-media&"); 
});

我能够使用以下方法使它正常工作:

// add parameter when opening video in popup
$(".lightbox-trigger").on("click", function() { 
    $(".mfp-wrap .et_pb_video.autoplay iframe").each(function(){
        var addautoplay = $(this).attr("src")+"&autoplay=1";
        $(this).attr("src",addautoplay);
    });
});

//for removing the parameter when closing the video
$('.lightbox-overlay').click(function() { 
    $(".et_pb_video.autoplay iframe").each(function(){
        var removeautoplay = $(this).attr("src").replace("&autoplay=1", "");
        $(this).attr("src",removeautoplay);
    });
    $.magnificPopup.close();
});