在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.

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Elasticsearch脚本排序时间过长

2022-4-22 11:08:55

解决方案

React-native Google Drive如何获取文件和文件夹列表?

2022-4-22 11:08:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索