在jQuery中添加音频暂停前的延迟

我试图在用户在div上停留时淡入一个音频文件。

淡入工作正常,但在淡出完成之前,音频被暂停。这是我目前的代码。

$(function () {
    $('#playmusic').hover(
        function () {
            $('#music')[0].play();
            $('#music').animate({volume: 1}, 1000);
        },
        function () {
            $('#music').animate({volume: 0}, 1000);
            $('#music')[0].pause();    
        }
    )
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p id="playmusic">hover to hear audio</p>

<audio id="music" preload="auto">
     <source src="https://upload.wikimedia.org/wikipedia/commons/e/ec/A_Tale_of_Distant_Lands.mp3" type="audio/mpeg">
</audio>

我想我需要添加一个 .delay 到我的代码中,使音频在淡出后暂停,但是下面的内容却给我一个错误。

$('#music').delay(1000).[0].pause();

有人知道我哪里做错了吗?

解决方案:

如果你想延迟停止,可以用setTimeout来执行。

下面是一个例子

setTimeout(function(){
   $('#music')[0].pause();
}, 1000);

时间以毫秒为单位设置。

拖延 函数用于jQuery的效果,包括动画,其他的东西最好使用 setTimeout.

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/344.html

(0)
上一篇 2022年6月29日 下午3:55
下一篇 2022年6月29日 下午3:55

相关推荐

发表评论

登录后才能评论