开发者

Autoplay embedded Youtube video with Fancybox

I have on my page a linked image which when clicked loads up a Fancybo开发者_JS百科x modal box. It does this successfully but I want the video to autoplay. If I set the YouTube URL to autoplay=1, the hidden DIV plays in the background on page load.

// Here is the linked image
<a id="inline" href="#video"><img src="someimage.jpg" alt="Description" /></a>

// Here is the hidden DIV
<div style="display:none">
  <div id="video">
    <iframe title="YouTube video player" width="640" height="390" src="###YOUTUBE LINK###rel=0&amp;hd=1&amp;autoplay=0" frameborder="0"></iframe>
  </div>
</div>

// Here is the script
<script type="text/javascript">
  $("a#inline").fancybox({
    'hideOnContentClick': true,
  });
</script>

My guess is I need to do some sort of Bind() event and string replace to change autoplay=0 to autoplay=1 but I have tried a few variations without any success

Any thoughts please?


First change the href of your linked image to your YouTube URL making sure "autoplay=1" like this link (NOT the embed URL). Then get rid of your hidden <div> and follow tip 4 on the FancyBox "Tips & Tricks" page which is fairly straight forward:

$("#tip4").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;
});
  • Quick example

Doing it this way, people still get to watch the video, even if JS is disabled for them.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜