Javascript:防止光标隐藏在Mac OS上的按键上

时间:2018-03-26 23:04:20

标签: javascript macos user-interface keyboard-events

我正在开发一个照片编辑器webapp Photopea

按B键时,切换到具有自定义光标的画笔工具。您可以使用 [] 键更改画笔直径(使直径更大或更小)。

在MacOS上按下某个键时,它会一直隐藏光标,直至移动鼠标。对于使用按键更改画笔直径的用户,光标会消失,并且无法看到新直径的预览。

原生应用可以阻止Mac OS上的此默认行为。网络应用也可以阻止它吗?

在下面的演示中,您可以看到按键时光标会发生什么:



var down = [];
var msg = document.getElementById('state-msg');
document.body.addEventListener('keydown', function(e) {
  e.stopPropagation();
  e.preventDefault();
  if (down.indexOf(e.key.toLowerCase()) == -1) down.push(e.key.toLowerCase());
  msg.textContent = JSON.stringify(down);
});

document.body.addEventListener('keyup', function(e) {
  e.stopPropagation();
  e.preventDefault();
  down.splice(down.indexOf(e.key.toLowerCase()), 1);
  msg.textContent = JSON.stringify(down);
});

<span id="state-msg"></span>
&#13;
&#13;
&#13;

0 个答案:

没有答案