У меня есть приложение для киоска, работающее на сервере Ubuntu 14.04.3 и chrome. В настоящее время у меня есть код, который скрывает мышь, если не было движения в течение 2 секунд, и как только пользователь попытается переместить мышь снова, он снова появится. Хитрость заключается в использовании cursor:none
и добавления наложения:Принудительный перекрашивание слоя
ЯШ:
var body = $('body');
function hideMouse() {
body.addClass("hideMouse");
body.on('mousemove', function(){
if(window.hiding) return true;
window.hiding = true;
body.removeClass("hideMouse");
$('div.mouseHider').remove();
clearTimeout(window.hideMouse);
window.hideMouse = setTimeout(function(){
body.addClass("hideMouse");
$('<div class="mouseHider"></div>').css({
position: 'fixed',
top: 0,
left: 0,
height: '100%',
width: '100%',
zIndex: 99999
}).appendTo(body);
redraw(document.body);
setTimeout(function(){
window.hiding = false;
}, 100);
}, 4000);
});
}
function redraw(e) {
e.style.display = 'none';
e.offsetHeight;
e.style.display = 'block';
}
CSS:
body.hideMouse *, body.hideMouse{
cursor: none;
}
body.hideMouse *{
pointer-events: none !important;
}
Этот код работает прекрасно, но есть только один нюанс. Когда первая загрузка страницы пытается скрыть мышь с помощью той же трюки, но мышь все еще торчит там, так как она просто не перекрасила слой, который я предполагаю. Если я хочу, чтобы он работал, мне нужно немного потянуть мышь, и с этого момента он будет работать так, как ожидалось, и спрятать мышь. Дело в том, что приложение киоска перезапускается каждый день, что означает, что я снова загружаю X-образ, и мышь сбрасывается в середину экрана, и он просто держится там, пока я не переместил его немного. Надеюсь, вы понимаете, что я имею в виду.
Вы, ребята, знаете, как я могу это исправить?
Вам нужно, что когда нагрузка приложения, но пользователь does't переместить мышь, то курсор должен скрывать по истечении заданного время? –
Обычно, когда вы наводите курсор на курсор, вы хотите назвать его как селектор: 'selector {cursor: none; } ' –
Как вы называете' hideMouse() '? –