REFACTOR: `LockOn` class (PR #10428)

See the list of commits for the description of individual changes. (spoiler: mostly de-jQuery-ification)

This PR tries to closely preserve the original behavior. In a separate change I’d:

  1. Remove deprecated event types (DOMMouseScroll and mousewheel)
  2. Remove one of the event listener targets (i.e. either body or html)
  3. Add an escape hatch, that will clear the lock if target element doesn’t appear within e.g. 10 seconds

GitHub

Very nice!