Skip to content

Instantly share code, notes, and snippets.

@anam-hossain
Created May 8, 2015 01:49
Show Gist options
  • Save anam-hossain/7a10734514a9c53d88a8 to your computer and use it in GitHub Desktop.
Save anam-hossain/7a10734514a9c53d88a8 to your computer and use it in GitHub Desktop.
Full example - autoplay youtube video in a Modal (Bootstrap + Jquery)
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script>
$(function() {
$(".video").click(function () {
var theModal = $(this).data("target"),
videoSRC = $(this).attr("data-video"),
videoSRCauto = videoSRC + "?modestbranding=1&rel=0&controls=0&showinfo=0&html5=1&autoplay=1";
$(theModal + ' iframe').attr('src', videoSRCauto);
$(theModal + ' button.close').click(function () {
$(theModal + ' iframe').attr('src', videoSRC);
});
});
});
</script>
</head>
<body>
<button class="btn btn-success btn-lg video" data-video="https://www.youtube.com/embed/8L5PqL4ylIU" data-toggle="modal" data-target="#videoModal">Play Video 1</button>
<button class="btn btn-default btn-lg video" data-video="https://www.youtube.com/embed/HBdcL7YsdBY" data-toggle="modal" data-target="#videoModal">Play Video 2</button>
<div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<iframe width="100%" height="350" src="" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</body>
</html>
@jeremydanielfox
Copy link

Hi -- thanks for the code -- it works very well! I'm wondering -- how can I make the modal close when a user clicks outside of it?

Thanks!

@egurelli
Copy link

egurelli commented Nov 14, 2016

Thanks for sharing this nice and simple code. @jeremydanielfox I guess you are talking about closing video. There is an event http://getbootstrap.com/javascript/#modals-events

$('#myModal').on('hidden.bs.modal', function (e) { // do something... })

I have ended up like this;

<button class="btn btn-success btn-lg video" data-video="https://www.youtube.com/embed/lZX8jeTvxOY" data-toggle="modal" data-target="#videoModal">Play Video 1</button>

<div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="embed-responsive embed-responsive-16by9">
<iframe width="100%" height="500" src="" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
$(function() {
        $(".video").click(function () {
        var theModal = $(this).data("target"),
        videoSRC = $(this).attr("data-video"),
        videoSRCauto = videoSRC;
        $(theModal + ' iframe').attr('src', videoSRCauto);
        $(theModal + ' button.close').click(function () {
            $(theModal + ' iframe').attr('src', '');
        });
        });
    });

$('#videoModal').on('hidden.bs.modal', function (e) {
$('#videoModal').find('iframe').attr('src', '');
});

@cristian100
Copy link

This works perfect, Thanks!

@mr-aleks
Copy link

@stg34pitt
Copy link

Just wondering if there was a way to put a close button within the modal popup that contains the video. Right now mine only closes if you click the border around the video

@tristdac
Copy link

@jeremydanielfox, To stop video (remove iframe src) on clicking outside of modal (dismiss) the following should work.

replace:
$(theModal + ' button.close').click(function () {

with:
$(theModal).on('click', function(){

@TonyRuQusSCarbetta
Copy link

This worked well thanks for sharing

@cowshedhq
Copy link

cowshedhq commented Mar 14, 2018

This works brilliantly for me on Chrome, Firefox etc but not on Safari (although it is ok on iphone).

On Safari the modal opens with a blurred image where the video is, and then nothing happens.

Does any one have any ideas how I could solve this?

Copy link

ghost commented Apr 2, 2018

Thank you so much, it helps me lot!!

Copy link

ghost commented Apr 2, 2018

but guys can anybody make popup video like this, here you can see - popup video of adobe photoshop - https://www.adobe.com/in/products/photoshop.html

@donaFabris
Copy link

This helped me a lot, thank you! Do you know why if I modify the CSS of the buttons with my own CSS the whole function stops working? Is there another way to modify the design of the buttons? Thank you!

@labar
Copy link

labar commented Dec 10, 2018

This just helped me figure out my issue. Thanks a lot!

@jhonhenrybernal
Copy link

La rompiste me funciono perfectamente

@emb03
Copy link

emb03 commented Aug 22, 2019

This saved my butt! Thank you!!!!

@patapouf123
Copy link

Hello for always launch autoplay
replace <iframe width="100%" height="350" src="" frameborder="0" allowfullscreen></iframe>
by

<iframe width="100%" height="350" src="" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture">

Thanks

@harry9345
Copy link

well done

@manojsukale
Copy link

Not working in Mobile can anyone tell me the solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment