Javascript 切换选项卡时,动画功能无法正常运行

Javascript 切换选项卡时,动画功能无法正常运行,javascript,jquery,html,audio,jquery-animate,Javascript,Jquery,Html,Audio,Jquery Animate,上下文 我的网页背景中播放HTML音频,该网页具有淡出/淡入功能,该功能使用jQuery.animate函数在淡出时将音量设置为0,在淡入时将音量设置为1 我已经实现了页面可见性API: 这用于检测用户是否切换选项卡 目前,当选项卡从可见变为隐藏时,我在音频上调用淡出功能,从隐藏变为可见时调用淡入功能: fadeOut(id){ $(id).animate({volume: 0}, 1000}); } fadeIn(id){ $(id).animate({volume: 1}, 10

上下文

我的网页背景中播放HTML音频,该网页具有淡出/淡入功能,该功能使用jQuery.animate函数在淡出时将音量设置为0,在淡入时将音量设置为1

我已经实现了页面可见性API:

这用于检测用户是否切换选项卡

目前,当选项卡从可见变为隐藏时,我在音频上调用淡出功能,从隐藏变为可见时调用淡入功能:

fadeOut(id){
   $(id).animate({volume: 0}, 1000});
}
fadeIn(id){
   $(id).animate({volume: 1}, 1000});
}
问题

当切换选项卡时,从可见到隐藏,淡出功能会被调用,但不会缓慢地从卷1变为0,它会在1秒后直接变为0,但当它从隐藏变为可见时,会按预期执行,从0变为1。我尝试过切换函数,似乎只有在从可见到隐藏的情况下才会发生。这是jQuery.animate函数的实现特性吗?还是我遗漏了什么

每个步骤的控制台日志输出

从隐藏变为可见时:

“步长时间:”0“音量:”0

步进时间:42卷:0

步进时间:44卷:0.025049273427930594

步进时间:51卷:0.026579017009366445

步进时间:60卷:0.030591727271815305

步进时间:1000卷:1

从可见到隐藏

步进时间:1000卷:1

“步进时间:”0“vol:“0

像这样的吗

$(id).animate({volume:0},1000)

从这个帖子。

我发现“.animate”函数执行的是一个优化问题。当页面“隐藏”-您正在查看另一个选项卡-jQuery将跳过动画步骤,因为查看器实际上无法看到动画。这对于实际动画来说非常好,但在本例中,当使用声音时,它会直接从1跳到0,跳过中间的步骤

我找不到API中提到的有点烦人的东西


我目前的解决方案是创建我自己的“动画”函数,以在递归setTimeout循环中降低音量

我不确定,因为没有使用音频元素,但这可能是因为您在切换选项卡时隐藏或删除了它?张贴你的标签,这样我们可以更容易地调试