سؤال

هل يمكنني فتح فيديو YouTube في Fancybox.

لدي قائمة بروابط مقاطع الفيديو على YouTube ، لـ EX:

<a href="http://www.youtube.com/watch?v=PvbqV8W96D0" class="more">Play</a>

و Fancybox:

$("a.more").fancybox({
                    'titleShow'     : false,
                    'transitionIn'  : 'elastic',
                    'transitionOut' : 'elastic'
        });

لا أريد إنشاء كل مقطع فيديو جديد.

هل هناك بعض التوصيلات أو طريقة أخرى للقيام بذلك؟

هل كانت مفيدة؟

المحلول

هذا مكسور ، انظر التحرير

<script type="text/javascript">
$("a.more").fancybox({
                    'titleShow'     : false,
                    'transitionIn'  : 'elastic',
                    'transitionOut' : 'elastic',
            'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type'      : 'swf',
            'swf'       : {'wmode':'transparent','allowfullscreen':'true'}
        });
</script>

وبهذه الطريقة ، إذا تم تمكين المستخدم JavaScript ، فسيفتح صندوقًا رائعًا باستخدام فيديو YouTube ، إذا تم تعطيل JavaScript ، فإنه يفتح صفحة YouTube الخاصة بالفيديو. إذا كنت تريد يمكنك إضافة

target="_blank"

إلى كل من الروابط الخاصة بك ، لن يتم التحقق من صحة معظم أنواع Docty ، ولكنه سيفتح الرابط في نافذة جديدة إذا لم يستلمه Fancybox.

تعديل

this, أعلاه ، لم يتم الرجوع إليه بشكل صحيح ، لذلك لن يجد الرمز href تحت this. عليك أن تسميها مثل هذا:

$("a.more").click(function() {
    $.fancybox({
            'padding'       : 0,
            'autoScale'     : false,
            'transitionIn'  : 'none',
            'transitionOut' : 'none',
            'title'         : this.title,
            'width'     : 680,
            'height'        : 495,
            'href'          : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type'          : 'swf',
            'swf'           : {
                 'wmode'        : 'transparent',
                'allowfullscreen'   : 'true'
            }
        });

    return false;
});

كما تغطي في http://fancybox.net/blog #4 ، مكرر أعلاه

نصائح أخرى

لقد بدأت باستخدام الإجابات هنا ، لكنني قمت بتعديلها لاستخدام YouTube الجديد iframe التضمين ...

$('a.more').on('click', function(event) {
    event.preventDefault();
    $.fancybox({
        'type' : 'iframe',
        // hide the related video suggestions and autoplay the video
        'href' : this.href.replace(new RegExp('watch\\?v=', 'i'), 'embed/') + '?rel=0&autoplay=1',
        'overlayShow' : true,
        'centerOnScroll' : true,
        'speedIn' : 100,
        'speedOut' : 50,
        'width' : 640,
        'height' : 480
    });
});
$("a.more").click(function() {
                 $.fancybox({
                  'padding'             : 0,
                  'autoScale'   : false,
                  'transitionIn'        : 'none',
                  'transitionOut'       : 'none',
                  'title'               : this.title,
                  'width'               : 680,
                  'height'              : 495,
                  'href'                : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
                  'type'                : 'swf',    // <--add a comma here
                  'swf'                 : {'allowfullscreen':'true'} // <-- flashvars here
                  });
                 return false;

            }); 

إذا كنت تريد إضافة وظيفة اللعب التلقائي إليها. ببساطة استبدال

this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'), 

مع

this.href = this.href.replace(new RegExp("watch\\?v=", "i"), 'v/') + '&autoplay=1',

كما يمكنك أن تفعل الشيء نفسه مع Vimeo

this.href.replace(new RegExp("([0-9])","i"),'moogaloop.swf?clip_id=$1'),

مع

this.href = this.href.replace(new RegExp("([0-9])","i"),'moogaloop.swf?clip_id=$1') + '&autoplay=1',

يحتوي هذا على تعبير منتظم ، لذا من الأسهل فقط نسخ عنوان URL على YouTube ولصقه. أمر رائع عند استخدام CMS للعملاء.

/*fancybox yt video*/
$(".fancybox-video").click(function() {
    $.fancybox({

    padding: 0,
        'autoScale'     : false,
        'transitionIn'  : 'none',
        'transitionOut' : 'none',
        'title'         : this.title,
        'width'         : 795,
        'height'        : 447,
        'href'          : this.href.replace(new RegExp("watch.*v=","i"), "v/"),
        'type'          : 'swf',
        'swf'           : {
        'wmode'             : 'transparent',
        'allowfullscreen'   : 'true'
         }

    });
    return false;
});

شكرا ، ألكساندر!

ولتعيين الزر الهوى الزائد فوق محتوى الفلاش في YouTube ، أضف "WMode" إلى معلمات "SWF":

'swf': {'allowfullscreen':'true', 'wmode':'transparent'}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top