Skip to content

Instantly share code, notes, and snippets.

@acutmore
Last active December 10, 2019 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acutmore/6502c28194468716f70b0d6934d5113b to your computer and use it in GitHub Desktop.
Save acutmore/6502c28194468716f70b0d6934d5113b to your computer and use it in GitHub Desktop.
Tracking DOM focus
function updateFocus(elm) {
const focusedClass = 'focused';
const currentlyFocused = document.querySelector('.' + focusedClass);
if (currentlyFocused != null) {
currentlyFocused.classList.remove(focusedClass);
}
if (elm) {
elm.classList.add(focusedClass);
}
}
document.body.addEventListener('focusin', e => {
updateFocus(e.target);
});
document.body.addEventListener('focusout', e => {
if (document.activeElement === document.body) {
updateFocus(null);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment