出于某种原因,在 PC 上的 chrome 中(在 mac 上不会发生),当您进入全屏模式时,会弹出一个内置的小 chrome div,说您现在处于全屏模式,当该 div 消失时,它会触发一个mousemove
事件。知道为什么吗?
var idleTimer;
$videoContainer.mousemove(function()
{
if (!$jsplayer.prop('paused'))
{
if (idleTimer)
{
clearTimeout(idleTimer);
$videoControls.stop(true,true).animate({opacity:1}, animationDuration);
}
idleTimer = setTimeout(function(){
$videoControls.stop(true,true).animate({opacity:0}, animationDuration);
},3000);
}
});
当鼠标实际上没有移动时,它基本上会导致我的空闲鼠标功能触发。这似乎只发生在 chrome 中。PC 上的 Firefox 不这样做,mac 上的 chrome 不这样做。我在用google chrome 30.0.1599.69 m
解决方案
var idleTimer;
var prevX;
$videoContainer.mousemove(function(e)
{
if (!$jsplayer.prop('paused'))
{
if (idleTimer)
{
clearTimeout(idleTimer);
if (prevX != e.clientX) $videoControls.stop(true,true).animate({opacity:1});
}
prevX = e.clientX;
idleTimer = setTimeout(function(){
if (!$jsplayer.prop('paused')) $videoControls.stop(true,true).animate({opacity:0}, animationDuration);
},3000);
}
});