首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magnific Wordpress音频快捷码在关闭后继续播放

Magnific Wordpress音频快捷码在关闭后继续播放
EN

Stack Overflow用户
提问于 2019-04-19 03:45:31
回答 1查看 264关注 0票数 0

我已经为我的自定义Wordpress主题创建了一个内联弹出窗口,使用Magnific popup和wp_audio_shortcode()函数。它工作得很漂亮,除了当我关闭弹出窗口时,音频仍在播放。(嵌入式视频完全按照预期停止,这太棒了!)

我读了这篇文章magnific-popup, how to play an audio file when popup open and stop playing when closing it,它并没有完全解决我的问题;我得到了几个javascript错误。

任何帮助都将不胜感激!

下面是我的函数呈现的弹出窗口的HTML。我删除了一些无关紧要的东西,比如网址和多行标题。

人们点击的链接:

代码语言:javascript
复制
<a href="#popup-3" data-audio="audio-3" data-effect="popup-with-zoom-anim" class="open-popup-link popup-with-zoom-anim has_thumb" style="background-image:url('graphic.jpg') "><span class="pop-up-wrapper"><h2 class="homecard-title">Link Text</h2></span></a>

出现的弹出窗口:

代码语言:javascript
复制
<div id="popup-3" class="pop-up-post zoom-anim-dialog">
     <div class="pop-up-left"><img src="graphic.jpg" class="pop-up-back-image"></div>
     <div class="pop-up-right">
          <h2 class="homecard-title">Headline Here<br><span class="play-wrapper" id="audio-3"><!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->
<audio class="audio-3" id="audio-104-1" preload="none" style="width: 100%;" controls="controls"><source type="audio/mpeg" src="http://vivenne:8888/wp-content/uploads/2019/04/Vivienne-Leheny-Hot-Winter-NIghts-Lucas-Mom.mp3?_=1"><a href="http://vivenne:8888/wp-content/uploads/2019/04/Vivienne-Leheny-Hot-Winter-NIghts-Lucas-Mom.mp3">http://vivenne:8888/wp-content/uploads/2019/04/Vivienne-Leheny-Hot-Winter-NIghts-Lucas-Mom.mp3</a></audio></span></h2>
     </div>

     <button title="Close (Esc)" type="button" class="mfp-close">×</button>

</div>

Magnific的jquery (直接取自网站):

代码语言:javascript
复制
        $('.popup-with-zoom-anim').magnificPopup({
            type: 'inline',

            fixedContentPos: false,
            fixedBgPos: true,

            overflowY: 'auto',

            closeBtnInside: true,
            preloader: false,

            midClick: true,
            removalDelay: 300,
            mainClass: 'my-mfp-zoom-in',

        });

当单击关闭按钮时,我希望音频停止播放,但它会在后台继续播放。

EN

回答 1

Stack Overflow用户

发布于 2019-04-26 22:59:02

好吧,伙计们,我解决了。我放弃了wp_audio_shortcode(),这使得为<audio>元素分配ID变得更容易。

我很乐意提供所有的代码,但我认为这是令人困惑的断章取义。下面是一些重要的花边新闻…

magnificPopup容器获得一个与其中包含的音频播放器ID匹配的data-ref属性。(我使用一个简单的$count变量完成此操作,因为页面上有几个弹出窗口。)

对于magnificPopup jQuery来说,重要的部分是:

代码语言:javascript
复制
callbacks: {
   close: function(){
      var magnificPopupVar = $.magnificPopup.instance,
      magnificPopupSrc = magnificPopupVar.currItem.src,
      magnificPopupRef = $(magnificPopupSrc).attr('data-ref'),
      audioplayer = document.getElementById('audio-popup-'+magnificPopupRef);
      audioplayer.pause();
   }
}

在上下文中:

代码语言:javascript
复制
$('.popup-with-zoom-anim').magnificPopup({
    type: 'inline',

    fixedContentPos: false,
    fixedBgPos: true,

    overflowY: 'auto',

    closeBtnInside: true,
    preloader: false,

    modal:false,

    midClick: true,
    removalDelay: 300,
    mainClass: 'my-mfp-zoom-in',

    callbacks: {
        close: function(){
            var magnificPopupVar = $.magnificPopup.instance,
            magnificPopupSrc = magnificPopupVar.currItem.src,
            magnificPopupRef = $(magnificPopupSrc).attr('data-ref'),
            audioplayer = document.getElementById('audio-popup-'+magnificPopupRef);
            audioplayer.pause();
      }
   }
});

我希望这对其他试图解决这个问题的人有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55752817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档