maneira como o navegador cruz para tela de seleção de esconder
Pergunta
Eu estou fazendo um jogo javascript baseado em navegador. Como tal, dentro do jogo não há para onde os usuários precisam copiar / colar texto. No entanto, existem muitos lugares onde as necessidades do usuário para clicar e arrastar para fazer seleções no jogo.
Dentro do jogo há muitas células, internamente apenas as células da tabela normais, com um espaço rígido para detê-los em colapso no firefox (eu poderia parar o colapso no IE, Safari e Opera com CSS, mas por alguma razão ele didn' t funciona no Firefox, então eu recorreu a espaços não quebra), ou com uma cor de fundo sólida ou uma imagem de fundo.
Como o jogador arrasta uma seleção entre eles, o jogo destaca as células, alterando a cor de fundo. No entanto, o navegador também destaca os espaços não quebra, deixando rectângulos cinzentos através de alguns da célula.
Além disso, o navegador usa uma maneira diferente para determinar o que é selecionado do que o jogo.
por exemplo. num quadrado de 5 x 5, se o utilizador selecciona (1, 1) a (3, 3), o jogo destaques da seguinte selecção:
| | | | | |
| | X | X | X | |
| | X | X | X | |
| | X | X | X | |
| | | | | |
mas os destaques navegador espaços não quebra o seguinte:
| | | | | |
| | | X | X | X |
| X | X | X | X | X |
| X | X | X | X | |
| | | | | |
Existe alguma maneira de parar a seleção navegador denominar mostrando através? Pelo menos no firefox e cromo, mas de preferência navegador cruz.
Solução
Para o Firefox, você pode adicionar o estilo css: ( mozilla guia )
-moz-user-select: none
Para Chrome e Safari: (não poderia encontrar uma fonte confiável até o momento)
-khtml-user-select:none
Se você preferir uma solução javascript, aqui é o que eu encontrei de um resposta anterior :
<div onselectstart="return false">some stuff</div>
Outras dicas
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
Duplicar de: https://stackoverflow.com/a/4407335/746491