Javascript 检查浏览器空闲的替代方法
我有一个简单的web信息亭,在鼠标不随jQuery移动30秒后显示用户操作提示Javascript 检查浏览器空闲的替代方法,javascript,jquery,Javascript,Jquery,我有一个简单的web信息亭,在鼠标不随jQuery移动30秒后显示用户操作提示 var i = null; $("#body-wrap").mousemove(function() { clearTimeout(i); $("#overlay").fadeOut(); i = setTimeout(function() { $("#overlay").fadeIn(); }, 30000); }) 信息亭是一个视频选择站。视频是全屏播放的,我
var i = null;
$("#body-wrap").mousemove(function() {
clearTimeout(i);
$("#overlay").fadeOut();
i = setTimeout(function() {
$("#overlay").fadeIn();
}, 30000);
})
信息亭是一个视频选择站。视频是全屏播放的,我遇到了一个问题,因为鼠标没有移动,所以动作显示在视频框下面
是否有方法使用JavaScript检查除鼠标或按键事件以外的浏览器活动?根据您播放视频的方式,在视频播放/暂停时切换全局标志,
videoPlaying
。然后,
$("#body-wrap").mousemove(function() {
clearTimeout(i);
$("#overlay").fadeOut();
i = setTimeout(function() {
if(!videoPlaying)
$("#overlay").fadeIn();
}, 30000);
})
视频是全屏播放的,我遇到了一个问题
该动作显示在视频帧下方,因为鼠标
还没动
如果问题是当用户请求全屏显示时,在
元素下呈现给用户的消息,您可以使用
元素,将src
设置为.vtt
文件,或.addTextTrack()
方法的HTMLMEDIALEMENT
,VTTCue()
,.addCue()
添加提示
消息,在特定时间显示在
元素上
使用HTMLMEDIALEMENT
的loadedmetadata
和ended
事件来设置、重置TextTrackCue
。另外,在mousemove
事件处理程序中,将cue
重置为当前用户活动的30秒
您可以在新的窗口查看链接的,方法是单击“在单独的窗口中启动预览”
图标,然后单击
包含文本的元素“切换全屏”
::提示{
背景:透明;
}
::提示(.prompt){
颜色:#d81159;
背景:透明;
文本阴影:2px2px2px#ffbc42;
字体系列:Menlo、Sans、Monospace;
字体大小:36px;
显示:块;
宽度:100px;
}
::提示(b){
显示:块;
宽度:100px;
}
全屏切换
var video=document.querySelector(“视频”);
var按钮=document.querySelector(“按钮”);
video.requestFullscreen=video.requestFullscreen
||全屏显示
||video.webkit请求全屏显示;
video.exitFullscreen=video.exitFullscreen
||video.mozExitFullscreen
||video.webkitexfullscreen;
var track=video.addTextTrack(“字幕”、“提示”、“en”);
track.mode=“显示”;
var overlay=“无浏览器活动”;
var isFullscreen=false;
var-currentCue;
var持续时间;
video.onloadedmetadata=函数(e){
持续时间=这个时间;
currentCue=createCue(30,数学四舍五入(持续时间));
track.addCue(当前提示);
}
video.onended=video.onpause=function(){
清除(轨道);
console.log(track.cues);
currentCue=createCue(30
,Math.round(持续时间| | video.duration));
track.addCue(当前提示);
}
button.onclick=函数(){
如果(全屏显示){
video.exitFullscreen;
设置属性(“宽度”,“320px”);
设置属性(“高度”,“280px”);
isFullscreen=false;
}否则{
video.removeAttribute(“宽度”);
视频。删除属性(“高度”);
video.requestFullscreen();
isFullscreen=true;
}
}
window.onmousemove=函数(){
if(track.cues.length&¤tCue&&duration){
清除(轨道);
currentCue=createCue(
数学圆(视频当前时间)+30
,Math.round(持续时间| | video.duration)
);
track.addCue(当前提示);
}
}
函数createCue(开始、结束){
var cue=新VTTCue(开始、结束、覆盖);
cue.line=5;
cue.size=100;
回击杆
}
功能移除(轨道){
对于(var i=0;i
我对此表示怀疑。查看如何确定“浏览器活动”?你想每30秒提示用户一次吗?@guest271314这是一个伪屏幕保护程序。如果鼠标没有移动,它就在那里,这样人们就知道如何进行交互。但是,如果视频长度超过30秒(他们是),它会将他们踢回该提示符。因此,没有用户活动,但浏览器窗口肯定处于活动状态。在视频结束前,是否每30秒出现一次提示?@BrianBennett问题在于,在全屏过程中,提示显示在全屏视口之外?回答得很好!