【问题标题】:Jquery stop sound-cloud embed modaljQuery停止声音云嵌入模态
【发布时间】:2015-05-20 01:51:13
【问题描述】:

关闭模态时停止声音云。是否有 HTML 或 JQuery 解决方案?我试过这个。但是我无法让它发挥作用。我的代码是否忽略了某些内容?似乎变量弄乱了代码,但我不知道为什么......

代码:

<div class = "modal fade" id = "seeyou" role= "dialoge">
  <div class = "modal-dialog">
    <div class = "modal-content">
      <div class= "modal-header">
          <h4>GUEST LIST</h4>
            <div id = "video">
                 <iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/199607357&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe>
             </div>
            <div class = "modal-footer">
              <a class = "btn btn-default" data-dismiss = "modal">CLOSE</a>
            </div>
        </div>
      </div>
    </div>
  </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
    <script src="https://w.soundcloud.com/player/api.js"></script>
    <script src="copy.js"></script>
  </body>
</html>
$(document).ready(function() {
    $('.box-toggle3').hide();
    $('.box-toggle1').hide();
    $('.box-toggle2').hide();

    var iframeElement   = $('#video > iframe')[0];
    var scPlayer = SC.Widget('iframeElement');
    $('#seeyou').on('hidden.bs.modal', function () {
    scPlayer.pause();
            });

    $('#new-releases').click(function() {
        $('#box').removeClass('box-reg');
        $('#box').addClass('box-zoom');
        $('.box-toggle1').fadeOut(200);
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle').fadeOut(250);
        $('.box-toggle1').fadeIn(2500);
    });

    $('#concerts').click(function() {
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle1').fadeOut(200);
        $('.box-toggle').fadeOut(250);
        $('#box').removeClass('box-zoom');
        $('#box').addClass('box-reg');
        $('.box-toggle2').fadeIn(2500);
    });

    $('#playlists').click(function() {
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle1').fadeOut(200);
        $('.box-toggle').fadeOut(250);
        $('#box').removeClass('box-zoom');
        $('#box').addClass('box-reg');
        $('.box-toggle3').fadeIn(2500);
    });

    $('#news').click(function() {
        $('.box-toggle').fadeOut(250);
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle1').fadeOut(200);
        $('#box').removeClass('box-zoom');
        $('#box').addClass('box-reg');
        $('.box-toggle').fadeIn(2500);
    });

    $('#news2').click(function() {
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle1').fadeOut(200);
        $('.box-toggle').fadeOut(250);
        $('#box').removeClass('box-zoom');
        $('#box').addClass('box-reg');
        $('.box-toggle2').fadeIn(1500);
    });

    $('#news3').click(function() {
        $('#box').removeClass('box-reg');
        $('#box').addClass('box-zoom');
        $('.box-toggle1').fadeOut(200);
        $('.box-toggle3').fadeOut(250);
        $('.box-toggle2').fadeOut(250);
        $('.box-toggle').fadeOut(250);
        $('.box-toggle1').fadeIn(1500);
    });

});

【问题讨论】:

    标签: jquery soundcloud


    【解决方案1】:

    SoundCloud's public API可用于控制播放器。

    var iframeElement   = $('#video > iframe')[0]; // catches the iframe element
    var scPlayer         = SC.Widget(iframeElement); // wraps with SoundClouds api
    
    $('#myModal1').on('hidden.bs.modal', function () {
        scPlayer.pause(); // pause the player when the modal window is closed.
    })
    

    这是一个演示http://jsfiddle.net/dhirajbodicherla/h3WDq/540/

    【讨论】:

    • 也许我忽略了一些东西。当我将它添加到我的代码中时,它并没有完成任务。 var iframeElement = $('#video > iframe')[0]; // 捕获 iframe 元素 var scPlayer = SC.Widget('iframeElement'); $('#seeyou').on('hidden.bs.modal', function () { scPlayer.pause(); });
    • @RickiMoore 这样的jsfiddle.net/dhirajbodicherla/h3WDq/543 怎么样?我在这里和那里进行了一些更改以使其正常工作。
    • 我认为是我不懂的javascript
    • 您在控制台中看到任何错误吗?另外,您可以尝试在jsfiddle.net 上复制您的代码吗?
    • 当我将这两行与变量一起使用时,它会停止我的代码
    【解决方案2】:

    我终于让它工作了。我必须更改 IFRAMEELEMENT 的变量才能调用该函数。非常感谢您的帮助!

    <div class = "modal fade" id = "seeyou" role= "dialoge">
      <div class = "modal-dialog">
        <div class = "modal-content">
          <div class= "modal-header">
              <h4>GUEST LIST</h4>
                <div id = "video">
                     <iframe id = "sc-widget" width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/199607357&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe>
                 </div>
                <div class = "modal-footer">
                  <a id = "stopSound" class = "btn btn-default" data-dismiss = "modal">CLOSE</a>
                </div>
            </div>
          </div>
        </div>
      </div>    
    var widget1 = SC.Widget("sc-widget");
                 $("#stopSound").click(function() {
                widget1.pause()
            });
                 $('#seeyou').on('hidden.bs.modal', function () {
            widget1.pause();
            });
    

    【讨论】:

    • 从技术上讲,#video &gt; iframe 和给 iframe 一个 id 之间没有区别。只要它有效:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多