É possível se concentrar em <div>
usar a focus()
função JavaScript ?
Eu tenho uma <div>
etiqueta
<div id="tries">You have 3 tries left</div>
Estou tentando focar no acima <div>
usando:
document.getElementById('tries').focus();
Mas isso não funciona. Alguém poderia sugerir algo ....?
javascript
focus
OM a eternidade
fonte
fonte
div
s pode aceitar entrada se estourarem e mostrarem uma barra de rolagem. Quando umdiv
com uma barra de rolagem é focado, as teclas de seta rolam seu conteúdo (em vez do conteúdo de outros elementos, comobody
).Respostas:
Isso irá rolar para o elemento em questão, essencialmente "focando" nele.
fonte
Sim - isso é possível. Para fazer isso, você precisa atribuir um índice de tabulação ...
Um índice de tabulação 0 colocará a tag "na ordem de tabulação natural da página". Um número maior dará a ele uma ordem específica de prioridade, onde 1 será o primeiro, 2 segundos e assim por diante.
Você também pode fornecer um índice de tabulação -1, que tornará a div apenas focável por script, não pelo usuário.
Obviamente, é uma pena ter um elemento que você possa focar por script que não possa ser focado por outro método de entrada (especialmente se um usuário tiver apenas o teclado ou restrições semelhantes). Também há vários elementos padrão que são focáveis por padrão e possuem informações semânticas incorporadas para ajudar os usuários. Use esse conhecimento com sabedoria.
fonte
focus()
.tabindex
a um elemento irá torná-lo focalizável, que permite que osfocus()
eblur()
métodos, e então você pode desencadear um foco assim:document.getElementById('tries').focus();
window.location.hash = ...
é a maneira de fazer isso. foco não significa "trazer à vista", significa apenas colocar literalmente o foco nesse elemento.document.getElementById('tries').scrollIntoView()
trabalho. Isso funciona melhor do quewindow.location.hash
quando você tem um posicionamento fixo.fonte
tabindex
atributo) na div de sobreposição e usáfocus()
-lo nesse elemento.Você pode usar tabindex
O valor tabindex pode permitir algum comportamento interessante.
fonte
fonte
$('#inner').focus();
Eu queria sugerir algo como o de Michael Shimmin, mas sem codificar coisas como o elemento ou o CSS aplicado a ele.
Eu só estou usando jQuery para adicionar / remover classe, se você não quiser usar jquery, você só precisa de um substituto para add / removeClass
--Javascript
--CSS
fonte
fonte
Para fazer a borda piscar, você pode fazer isso:
Isso fará com que a borda fique vermelha por 1 segundo e remova-a novamente.
fonte