Bootstrap 3 and Youtube in Modal

后端 未结 18 1401
余生分开走
余生分开走 2020-12-07 07:05

I\'m trying to use the Modal feature from Bootstrap 3 to show my Youtube video. It works, but I can\'t click on any buttons in the Youtube video.

Any help on this?<

相关标签:
18条回答
  • 2020-12-07 07:11

    $('#videoLink').click(function () {
        var src = 'https://www.youtube.com/embed/VI04yNch1hU;autoplay=1';
        // $('#introVideo').modal('show'); <-- remove this line
        $('#introVideo iframe').attr('src', src);
    });
    
    $('#introVideo button.close').on('hidden.bs.modal', function () {
        $('#introVideo iframe').removeAttr('src');
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    
    <!-- triggering Link -->
    <a id="videoLink" href="#0" class="video-hp" data-toggle="modal" data-target="#introVideo"><img src="img/someImage.jpg">toggle video</a>
    
    <!-- Intro video -->
    <div class="modal fade" id="introVideo" tabindex="-1" role="dialog" aria-labelledby="introductionVideo" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          </div>
          <div class="modal-body">
            <div class="embed-responsive embed-responsive-16by9">
                <iframe class="embed-responsive-item allowfullscreen"></iframe>
            </div>
          </div>
        </div>
      </div>
    </div>

    0 讨论(0)
  • 2020-12-07 07:12

    MMhh... Could you post your entire HTML doc and what browser/version your using?

    I recreated your page and tested in 3 browsers (Chrome, FF, IE8). I was able to stop and start the awesome WDS4 trailer without any issues. Here is my code:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Bootstrap 101 Template</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!-- Bootstrap -->
        <link href="bootstrap.min.css" rel="stylesheet" media="screen">
    
        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
          <script src="../../assets/js/html5shiv.js"></script>
          <script src="../../assets/js/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
        <div id="link">My video</div>
    
        <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
    
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                    </div>
    
                    <div class="modal-body">
                        <iframe width="400" height="300" frameborder="0" allowfullscreen=""></iframe>
                    </div>
                </div>
            </div>
        </div>
    
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="jq.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="bootstrap.min.js"></script>
        <script>
        $('#link').click(function () {
            var src = 'http://www.youtube.com/v/FSi2fJALDyQ&amp;autoplay=1';
            $('#myModal').modal('show');
            $('#myModal iframe').attr('src', src);
        });
    
        $('#myModal button').click(function () {
            $('#myModal iframe').removeAttr('src');
        });
    </script>
      </body>
    </html>
    

    You could try bringing the Z-Index of your modal player higher in the stack?

    $('#myModal iframe').css("z-index","999");

    0 讨论(0)
  • 2020-12-07 07:12
    <a href="#" class="btn btn-default" id="btnforvideo" data-toggle="modal" data-target="#videoModal">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">&times;</button>
                    <div>
                        <iframe width="100%" height="315" src="https://www.youtube.com/embed/myvideocode" frameborder="0" allowfullscreen></iframe>
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    0 讨论(0)
  • 2020-12-07 07:12

    I had this same issue - I had just added the font-awesome cdn links - commenting out the bootstrap one below solved my issue.. didnt really troubleshoot it as the font awesome still worked -

    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
    
    0 讨论(0)
  • 2020-12-07 07:13

    I have one tip for you!

    I would use:

    $('#myModal').on('hidden.bs.modal', function () {
        $('#myModal iframe').removeAttr('src');
    })
    

    instead of:

    $('#myModal button').click(function () {
        $('#myModal iframe').removeAttr('src');
    });
    

    Because you can also close the modal without the button, so there for with this code it will remove the video every time the modal will hide.

    0 讨论(0)
  • 2020-12-07 07:14

    using $('#introVideo').modal('show'); conflicts with bootstrap proper triggering. When you click on the link that opens the Modal it will close right after completing the fade animation. Just remove the $('#introVideo').modal('show'); (using bootstrap v3.3.2)

    Here is my code:

    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
    <!-- triggering Link -->
    <a id="videoLink" href="#0" class="video-hp" data-toggle="modal" data-target="#introVideo"><img src="img/someImage.jpg">toggle video</a>
    
    
    <!-- Intro video -->
    <div class="modal fade" id="introVideo" tabindex="-1" role="dialog" aria-labelledby="introductionVideo" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          </div>
          <div class="modal-body">
            <div class="embed-responsive embed-responsive-16by9">
                <iframe class="embed-responsive-item allowfullscreen"></iframe>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"> </script>
    
    <script>
      //JS
    
    $('#videoLink').click(function () {
        var src = 'https://www.youtube.com/embed/VI04yNch1hU;autoplay=1';
        // $('#introVideo').modal('show'); <-- remove this line
        $('#introVideo iframe').attr('src', src);
    });
    
    
    $('#introVideo button.close').on('hidden.bs.modal', function () {
        $('#introVideo iframe').removeAttr('src');
    })
    </script>

    0 讨论(0)
提交回复
热议问题