Est-il possible de se concentrer sur une fonction <div>
utilisant JavaScript focus()
?
J'ai un <div>
tag
<div id="tries">You have 3 tries left</div>
J'essaie de me concentrer sur ce qui précède en <div>
utilisant:
document.getElementById('tries').focus();
Mais ça ne marche pas. Quelqu'un pourrait-il suggérer quelque chose ...?
javascript
focus
OM The Eternity
la source
la source
div
peut accepter une entrée si elle déborde et affiche une barre de défilement. Quand undiv
avec une barre de défilement est focalisé, les touches fléchées feront défiler son contenu (au lieu du contenu d'autres éléments tels quebody
).Réponses:
Ceci défilera jusqu'à l'élément en question, essentiellement "le focalisera".
la source
Oui, c'est possible. Pour ce faire, vous devez attribuer un tabindex ...
Un tabindex de 0 mettra la balise "dans l'ordre de tabulation naturel de la page". Un nombre plus élevé lui donnera un ordre de priorité spécifique, où 1 sera le premier, 2 le second et ainsi de suite.
Vous pouvez également donner un tabindex de -1, ce qui rendra la div uniquement focalisable par script, pas l'utilisateur.
Évidemment, il est dommage d'avoir un élément que vous pouvez focaliser par script que vous ne pouvez pas focaliser par une autre méthode d'entrée (surtout si un utilisateur est uniquement clavier ou contraint de manière similaire). Il existe également toute une série d'éléments standard pouvant être focalisés par défaut et contenant des informations sémantiques pour aider les utilisateurs. Utilisez ces connaissances à bon escient.
la source
focus()
.tabindex
un élément va faire vario, qui permet auxfocus()
etblur()
méthodes, et vous pouvez déclencher une mise au point comme celui - ci:document.getElementById('tries').focus();
window.location.hash = ...
est le moyen de le faire. focus ne signifie pas «mettre en vue», cela signifie simplement placer littéralement le focus sur cet élément.document.getElementById('tries').scrollIntoView()
travaux. Cela fonctionne mieux quewindow.location.hash
lorsque vous avez un positionnement fixe.la source
tabindex
attribut) dans le div de superposition et de l'utiliserfocus()
sur cet élément à la place.Vous pouvez utiliser tabindex
La valeur tabindex peut permettre un comportement intéressant.
la source
la source
$('#inner').focus();
Je voulais suggérer quelque chose comme Michael Shimmin mais sans coder en dur des éléments comme l'élément ou le CSS qui lui est appliqué.
J'utilise seulement jQuery pour ajouter / supprimer la classe, si vous ne voulez pas utiliser jquery, vous avez juste besoin d'un remplacement pour add / removeClass
--Javascript
--CSS
la source
la source
Pour faire clignoter la bordure, vous pouvez faire ceci:
Cela rendra la bordure rouge fixe pendant 1 seconde, puis retirez-la à nouveau.
la source