¿Es posible centrarse en <div>
usar una focus()
función de JavaScript ?
Tengo una <div>
etiqueta
<div id="tries">You have 3 tries left</div>
Estoy tratando de centrarme en lo anterior <div>
usando:
document.getElementById('tries').focus();
Pero no funciona. ¿Alguien podría sugerir algo ...?
javascript
focus
OM la eternidad
fuente
fuente
div
s puede aceptar entradas si se desbordan y muestran una barra de desplazamiento. Cuandodiv
se enfoca a con una barra de desplazamiento, las teclas de flecha desplazarán su contenido (en lugar del contenido de otros elementos comobody
).Respuestas:
Esto se desplazará al elemento en cuestión, esencialmente "enfocándolo".
fuente
Sí, esto es posible. Para hacerlo, debe asignar un índice de tabla ...
Un índice de tabulación de 0 colocará la etiqueta "en el orden de tabulación natural de la página". Un número más alto le dará un orden específico de prioridad, donde 1 será el primero, 2 segundos y así sucesivamente.
También puede dar un índice tabin de -1, lo que hará que el div solo se pueda enfocar por script, no por el usuario.
Obviamente, es una pena tener un elemento que pueda enfocar mediante un script que no pueda enfocar mediante otro método de entrada (especialmente si un usuario tiene un teclado solo o tiene una restricción similar). También hay un montón de elementos estándar que se pueden enfocar de manera predeterminada y tienen información semántica incorporada para ayudar a los usuarios. Usa este conocimiento sabiamente.
fuente
focus()
.tabindex
a un elemento hará que sea enfocable, que permite a lasfocus()
y losblur()
métodos, y luego se puede desencadenar un foco de esta manera:document.getElementById('tries').focus();
window.location.hash = ...
es la forma de hacerlo. enfoque no significa "poner a la vista", solo significa, literalmente, colocar el foco en ese elemento.document.getElementById('tries').scrollIntoView()
trabajos. Esto funciona mejor quewindow.location.hash
cuando tienes un posicionamiento fijo.fuente
tabindex
atributo) en el div superpuesto y usarlofocus()
en ese elemento.Puedes usar tabindex
El valor de tabindex puede permitir un comportamiento interesante.
fuente
fuente
$('#inner').focus();
Quería sugerir algo como el de Michael Shimmin pero sin codificar cosas como el elemento o el CSS que se le aplica.
Solo estoy usando jQuery para agregar / eliminar clase, si no desea usar jquery, solo necesita un reemplazo para agregar / eliminar Clase
--Javascript
--CSS
fuente
fuente
Para hacer que el borde parpadee, puede hacer esto:
Esto hará que el borde se vuelva rojo sólido durante 1 segundo y luego retírelo nuevamente.
fuente