| Dixsie Wolmers | dc6b3cd | 2021-05-20 19:01:42 -0500 | [diff] [blame] | 1 | const JumpLinkMixin = { | 
|  | 2 | methods: { | 
|  | 3 | setFocus(element) { | 
|  | 4 | element.setAttribute('tabindex', '-1'); | 
|  | 5 | element.focus(); | 
|  | 6 | // Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk | 
|  | 7 | element.removeAttribute('tabindex'); | 
|  | 8 | }, | 
|  | 9 | scrollToOffset(event) { | 
|  | 10 | // Select element to scroll to | 
|  | 11 | const ref = event.target.getAttribute('data-ref'); | 
|  | 12 | const element = this.$refs[ref].$el; | 
|  | 13 |  | 
|  | 14 | // Set focus and tabindex on selected element | 
|  | 15 | this.setFocus(element); | 
|  | 16 |  | 
|  | 17 | // Set scroll offset below header | 
|  | 18 | const offset = element.offsetTop - 50; | 
|  | 19 | window.scroll({ | 
|  | 20 | top: offset, | 
|  | 21 | behavior: 'smooth', | 
|  | 22 | }); | 
|  | 23 | }, | 
|  | 24 | }, | 
|  | 25 | }; | 
|  | 26 |  | 
|  | 27 | export default JumpLinkMixin; |