如何判断浏览器/选项卡是否处于活动状态,并在用户离开时调低音量
How to tell if browser/tab is active, and turn down volume sound when user leave
如何在活动选项卡中检查页面是否打开?我想在我的网站上静音视频,当用户离开标签。目前我使用的是:
$(window).on('focus', function() {
$("video").prop('muted', false);
});
但是当用户点击地址栏视频静音,所以这是意想不到的。我能避免这种行为吗?最好的解决方案是类似于这个网页:http://volkswagen-sportscars.fr/cars/当用户在浏览器中打开其他选项卡时,声音会被平滑地关闭。它是怎么做的?
较新的浏览器(IE10及以上)支持页面可见性API
Page Visibility API让你知道一个网页何时可见的焦点。有了标签式浏览,有一个合理的机会给定的网页是在后台,因此不可见的用户。当用户最小化网页或移动到另一个选项卡时,API发送一个关于页面可见性的visibilitychange事件。您可以检测事件并执行一些操作或行为不同。例如,如果你的web应用正在播放视频,它会在用户看另一个浏览器时暂停,然后重新播放当用户返回到选项卡时。用户不会失去他们的位置在视频中,可以继续观看。
用了这样的东西
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
document.addEventListener(visibilityChange, handleVisibilityChange, false);
function handleVisibilityChange() {
$("video").prop('muted', document[hidden]);
}
相关文章:
- 在Angular 2中布线期间保持零部件处于活动状态
- 如何使bxslider仅在移动视图中处于活动状态
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 返回上一页时,Javascript仍处于活动状态
- Angular+bootstrap ui,检查当前选项卡是否已处于活动状态
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- 禁用永久活动状态
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- Facebook API过滤用户活动,只显示指定的好友
- 检测浏览器选项卡是否处于活动状态或用户是否已切换
- FB.getLogin状态不起作用,如果用户处于非活动状态
- 当用户单击子菜单并在新页面中打开时,子菜单将保持活动状态
- 如何允许 Easeljs 代码在用户切换选项卡时保持活动状态
- 无法在量角器测试中保持用户会话活动状态
- 如何判断浏览器/选项卡是否处于活动状态,并在用户离开时调低音量
- 在用户滚动时为链接中的导航添加活动状态
- 当用户处于非活动状态时,如何结束会话?
- 如何使用php跟踪用户是否在网站中处于活动状态