Czy można skupić się na funkcji <div>
JavaScript focus()
?
Mam <div>
tag
<div id="tries">You have 3 tries left</div>
Staram się skupić na powyższym, <div>
używając:
document.getElementById('tries').focus();
Ale to nie działa. Czy ktoś może coś zasugerować ...?
javascript
focus
OM Wieczność
źródło
źródło
div
s może zaakceptować dane wejściowe, jeśli zostaną przepełnione i wyświetli pasek przewijania. Po ustawieniu punktudiv
z paskiem przewijania klawisze strzałek będą przewijać jego zawartość (zamiast zawartości innych elementów, takich jakbody
).Odpowiedzi:
Spowoduje to przewinięcie do danego elementu, w zasadzie „skupienie” go.
źródło
Tak - jest to możliwe. Aby to zrobić, musisz przypisać tabindex ...
Tabindex 0 spowoduje umieszczenie tagu „w naturalnej kolejności tabulatorów strony”. Wyższa liczba da mu określoną kolejność pierwszeństwa, gdzie 1 będzie pierwszą, 2 sekundą i tak dalej.
Możesz także podać tabindex -1, co sprawi, że div będzie w stanie się skupić tylko przez skrypt, a nie użytkownika.
Oczywiście wstydem jest mieć element, na którym można ustawić ostrość za pomocą skryptu, którego nie można ustawić za pomocą innej metody wprowadzania danych (szczególnie jeśli użytkownik jest ograniczony tylko przez klawiaturę). Istnieje również cała masa standardowych elementów, które domyślnie można ustawić i które zawierają informacje semantyczne, aby pomóc użytkownikom. Wykorzystaj tę wiedzę mądrze.
źródło
focus()
.tabindex
do elementu pozwoli zmianę ostrości, który umożliwiafocus()
iblur()
metod, a następnie można wywołać skupienie jak poniżej:document.getElementById('tries').focus();
window.location.hash = ...
jest na to sposobem. skupienie nie oznacza „pokazania”, ale oznacza dosłownie umieszczenie skupienia na tym elemencie.document.getElementById('tries').scrollIntoView()
Pracuje. Działa to lepiej niż wwindow.location.hash
przypadku stałego pozycjonowania.źródło
tabindex
atrybutu) w div div nakładki i użyciefocus()
tego elementu.Możesz użyć tabindex
Wartość tabindex może pozwolić na ciekawe zachowanie.
źródło
źródło
$('#inner').focus();
Chciałem zasugerować coś podobnego do Michaela Shimmina, ale bez sztywnego kodowania takich rzeczy jak element lub zastosowany do niego CSS.
Używam tylko jQuery do dodawania / usuwania klasy, jeśli nie chcesz używać jquery, potrzebujesz tylko zamiennika dla add / removeClass
- Javascript
- CSS
źródło
źródło
Aby zrobić flashowanie na granicy, możesz to zrobić:
Spowoduje to, że ramka będzie świecić na czerwono przez 1 sekundę, a następnie usunie ją ponownie.
źródło