首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将youtube视频嵌入magnific?

如何将youtube视频嵌入magnific?
EN

Stack Overflow用户
提问于 2014-01-14 19:08:23
回答 3查看 62.6K关注 0票数 22

我有大弹出plugin.but它不显示弹出的视频如何嵌入youtube视频在大弹出?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-14 19:12:01

有关文档,请查看以下链接:

Doc

代码语言:javascript
复制
$(document).ready(function() {
    $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
        disableOn: 700,
        type: 'iframe',
        mainClass: 'mfp-fade',
        removalDelay: 160,
        preloader: false,

        fixedContentPos: false
    });
});

<a class="popup-youtube" href="http://www.youtube.com/watch?v=0O2aH4XLbto">Open YouTube video</a>

希望这能有所帮助。

票数 49
EN

Stack Overflow用户

发布于 2016-12-07 15:59:56

默认情况下,每个服务只支持一种类型的URL,所以我将其扩展为支持YouTube/Vimeo的几乎所有视频URL类型:

http://dimsemenov.com/plugins/magnific-popup/documentation.html#iframe-type

代码语言:javascript
复制
$('.my-selector').magnificPopup({
    type: 'iframe',
    iframe: {
        patterns: {
            youtube: {
                index: 'youtube.com/', 
                id: function(url) {        
                    var m = url.match(/[\\?\\&]v=([^\\?\\&]+)/);
                    if ( !m || !m[1] ) return null;
                    return m[1];
                },
                src: '//www.youtube.com/embed/%id%?autoplay=1'
            },
            vimeo: {
                index: 'vimeo.com/', 
                id: function(url) {        
                    var m = url.match(/(https?:\/\/)?(www.)?(player.)?vimeo.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/);
                    if ( !m || !m[5] ) return null;
                    return m[5];
                },
                src: '//player.vimeo.com/video/%id%?autoplay=1'
            }
        }
    }
});

只需复制这两个属性(iframetype),并将其添加到您的Magnific弹出窗口中。

票数 9
EN

Stack Overflow用户

发布于 2018-02-09 07:02:09

很好的起点,Roy,但让我们进一步扩展一下,因为Youtube从特定的时间嵌入开始,现在给用户提供要嵌入的youtu.be链接。因此,为了匹配这两种情况,包括从特定时间线开始视频,我这样做。请注意,我还添加了标记覆盖,如果您不需要它,请删除它。

代码语言:javascript
复制
function extendMagnificIframe(){

    var $start = 0;
    var $iframe = {
        markup: '<div class="mfp-iframe-scaler">' +
                '<div class="mfp-close"></div>' +
                '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' +
                '</div>' +
                '<div class="mfp-bottom-bar">' +
                '<div class="mfp-title"></div>' +
                '</div>',
        patterns: {
            youtube: {
                index: 'youtu', 
                id: function(url) {   

                    var m = url.match( /^.*(?:youtu.be\/|v\/|e\/|u\/\w+\/|embed\/|v=)([^#\&\?]*).*/ );
                    if ( !m || !m[1] ) return null;

                        if(url.indexOf('t=') != - 1){

                            var $split = url.split('t=');
                            var hms = $split[1].replace('h',':').replace('m',':').replace('s','');
                            var a = hms.split(':');

                            if (a.length == 1){

                                $start = a[0]; 

                            } else if (a.length == 2){

                                $start = (+a[0]) * 60 + (+a[1]); 

                            } else if (a.length == 3){

                                $start = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 

                            }
                        }                                   

                        var suffix = '?autoplay=1';

                        if( $start > 0 ){

                            suffix = '?start=' + $start + '&autoplay=1';
                        }

                    return m[1] + suffix;
                },
                src: '//www.youtube.com/embed/%id%'
            },
            vimeo: {
                index: 'vimeo.com/', 
                id: function(url) {        
                    var m = url.match(/(https?:\/\/)?(www.)?(player.)?vimeo.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/);
                    if ( !m || !m[5] ) return null;
                    return m[5];
                },
                src: '//player.vimeo.com/video/%id%?autoplay=1'
            }
        }
    };

    return $iframe;     

}

$('.my-selector').magnificPopup({
    type: 'iframe',
    iframe: extendMagnificIframe()
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21112025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档