Est-il possible de se concentrer sur un <div> à l'aide de JavaScript focus() la fonction?
Est-il possible de se concentrer sur un <div>
à l'aide de JavaScript focus()
fonction?
J'ai un <div>
tag
<div id="tries">You have 3 tries left</div>
Je suis en train d'essayer de se concentrer sur la ci-dessus <div>
à l'aide de :
document.getElementById('tries').focus();
Mais ça ne fonctionne pas. Quelqu'un pourrait-il proposer quelque chose....?
- Que voulez-vous arriver quand vous 'focus' il? Les Divs ne pas accepter d'entrée, alors, voulez-vous de flash de la frontière, ou flash un arrière-plan en évidence etc?
- oui, j'ai besoin de <div> pour aller chercher l'attention de l'utilisateur...
- double possible de Quels éléments HTML peuvent recevoir le focus?
- Lire ceci: developer.mozilla.org/en/docs/Web/API/HTMLElement/focus
- et quelqu'un d'autre, <div> les éléments peuvent accepter d'entrée si vous avez contenteditable définie sur true. ( La raison pour laquelle je me suis renseigné )
div
s peut accepter d'entrée si elles débordent et afficher une barre de défilement. Lorsqu'undiv
avec une barre de défilement est concentré, la touche, les touches de défilement son contenu (plutôt que le contenu et d'autres éléments tels quebody
).
Vous devez vous connecter pour publier un commentaire.
Ce sera faites défiler jusqu'à l'élément en question, essentiellement "focus"ing il.
Oui - c'est possible. Pour ce faire, vous devez affecter un tabindex...
Un tabindex 0 permet de mettre le tag "dans le naturel de l'ordre de tabulation de la page". Un nombre plus élevé de lui donner un ordre de priorité, où 1 sera le premier, 2 seconde et ainsi de suite.
Vous pouvez également donner un tabindex de -1, ce qui fera de la div se concentrer uniquement-mesure par script, pas l'utilisateur.
JS:
CSS:
HTML:
Évidemment, c'est une honte d'avoir un élément, vous pouvez vous concentrer par script que vous ne pouvez pas se concentrer par une autre méthode d'entrée (surtout si un utilisateur est seul clavier ou de la même manière limitée). Il y a aussi tout un tas d'éléments standards sont peut recevoir le focus par défaut et avoir des informations sémantiques cuit pour aider les utilisateurs. Utiliser ces connaissances à bon escient.
focus()
.tabindex="-1"
), alors il ne peut pas être sélectionné via la touche tab, mais vous pouvez lui donner le focus à ça: snook.ca/archives/accessibility_and_usability/...tabindex
à un élément fera peut recevoir le focus, qui permet à l'focus()
etblur()
méthodes, et puis vous pouvez déclencher un accent comme ceci:document.getElementById('tries').focus();
:focus
. Fonctionne sur les principaux navigateurs, même sur MSIE en commençant par 9.$('#scrollbykeyboard').attr('tabindex', 0).focus();
window.location.hash = ...
est la façon de le faire. l'accent se complique pas dire "mettre en vue", il signifie littéralement mettre l'accent sur cet élément.:focus
règles css - developer.mozilla.org/en-US/docs/Web/CSS/:focusdocument.getElementById('tries').scrollIntoView()
œuvres. Cela fonctionne mieux quewindow.location.hash
lorsque vous aurez résolu le positionnement.tabindex
attribut) dans le revêtement de la div et l'utilisationfocus()
sur cet élément à la place.Vous pouvez utiliser la propriété tabindex
La valeur tabindex peut permettre à certaines comportement intéressant.
peut être donné à l'élément par programme (à l'aide de l'élément.focus()).
et tombe dans la tabulation flux du document. Des valeurs supérieures à
0 création d'un niveau de priorité, avec 1 étant le plus important.
$('#inner').focus();
Je voulais proposer quelque chose comme Michael Shimmin mais sans le coder en dur des choses comme l'élément, ou le CSS qui lui est appliquée.
Je suis seulement à l'aide de jQuery pour ajouter/supprimer de la classe, si vous ne voulez pas utiliser jquery, vous avez juste besoin d'un remplacement pour ajouter/removeClass
--Javascript
--CSS
Faire de la frontière de flash, vous pouvez le faire:
Cela rendra la frontière rouge fixe pendant 1 seconde, puis le retirer de nouveau.