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; |