Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查浏览器空闲的替代方法_Javascript_Jquery - Fatal编程技术网

Javascript 检查浏览器空闲的替代方法

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); }) 信息亭是一个视频选择站。视频是全屏播放的,我

我有一个简单的web信息亭,在鼠标不随jQuery移动30秒后显示用户操作提示

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问题在于,在全屏过程中,提示显示在全屏视口之外?回答得很好!