<!-- Button trigger modal --> <button class="btn btn-primary btn-lg"…
February 24, 2016
jQuery – Bootstrap 3 and Youtube in Modal
1. 效果一
HTML
<a href="#" class="btn btn-default" data-toggle="modal" data-target="#videoModal" data-theVideo="http://www.youtube.com/embed/loFtozxZG0s">VIDEO</a> <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <div> <iframe width="100%" height="350" src=""></iframe> </div> </div> </div> </div> </div>
jQuery
autoPlayYouTubeModal(); //FUNCTION TO GET AND AUTO PLAY YOUTUBE VIDEO FROM DATATAG function autoPlayYouTubeModal() { var trigger = $("body").find('[data-toggle="modal"]'); trigger.click(function () { var theModal = $(this).data("target"), videoSRC = $(this).attr("data-theVideo"), videoSRCauto = videoSRC + "?autoplay=1"; $(theModal + ' iframe').attr('src', videoSRCauto); $(theModal + ' button.close').click(function () { $(theModal + ' iframe').attr('src', videoSRC); }); $('.modal').click(function () { $(theModal + ' iframe').attr('src', videoSRC); }); }); }
CSS
/***** MODAL PROPERTIES *****/ .modal-content { -webkit-box-shadow: none; box-shadow: none; background:transparent; border:none; outline:none; } .modal-content iframe { border:none; padding:0; margin:0; } .close { font-size: 80px; margin:-20px 0 0 0; } /***** MEDIA QUERIES *****/ @media only screen and (max-width: 641px) { /***** MODAL PROPERTIES *****/ .modal-body { height:100px; padding:0; margin: 0; } .modal-content { padding:0; margin: 0; } .modal-dialog { position: relative; width: auto; margin: 15px; } .close { margin:-12px 0 0 0; } } @media only screen and (min-width: 768px) { /***** MODAL PROPERTIES *****/ .close { font-size: 80px; margin:30px -43px -20px 100px; } }
2. 效果二
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example of Embedding YouTube Video inside Bootstrap Modal</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.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.6/js/bootstrap.min.js"></script> <style type="text/css"> .bs-example{ margin: 20px; } .modal-content iframe{ margin: 0 auto; display: block; } </style> <script type="text/javascript"> $(document).ready(function(){ /* Get iframe src attribute value i.e. YouTube video url and store it in a variable */ var url = $("#cartoonVideo").attr('src'); /* Assign empty url value to the iframe src attribute when modal hide, which stop the video playing */ $("#myModal").on('hide.bs.modal', function(){ $("#cartoonVideo").attr('src', ''); }); /* Assign the initially stored url back to the iframe src attribute when modal is displayed again */ $("#myModal").on('show.bs.modal', function(){ $("#cartoonVideo").attr('src', url); }); }); </script> </head> <body> <div class="bs-example"> <!-- Button HTML (to Trigger Modal) --> <a href="#myModal" class="btn btn-lg btn-primary" data-toggle="modal">Launch Demo Modal</a> <!-- Modal HTML --> <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">YouTube Video</h4> </div> <div class="modal-body"> <iframe id="cartoonVideo" width="560" height="315" src="//www.youtube.com/embed/YE7VzlLtp-4" frameborder="0" allowfullscreen></iframe> </div> </div> </div> </div> </div> </body> </html>
更多参考:
Bootstrap 3: 监听弹出窗口关闭/打开事件 How to handle the modal closing event in Twitter Bootstrap?
Bootstrap 3 关闭Modal窗口 Close Bootstrap Modal
Bootstrap 3 添加外部页面到弹出窗口Bootstrap 3 with remote Modal
禁止点击背景而关闭bootstrap弹出框 Disable click outside of bootstrap model area to close modal
本文:jQuery – Bootstrap 3 and Youtube in Modal