| const JumpLinkMixin = { |
| methods: { |
| setFocus(element) { |
| element.setAttribute('tabindex', '-1'); |
| element.focus(); |
| // Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk |
| element.removeAttribute('tabindex'); |
| }, |
| scrollToOffset(event) { |
| // Select element to scroll to |
| const ref = event.target.getAttribute('data-ref'); |
| const element = this.$refs[ref].$el; |
| |
| // Set focus and tabindex on selected element |
| this.setFocus(element); |
| |
| // Set scroll offset below header |
| const offset = element.offsetTop - 50; |
| window.scroll({ |
| top: offset, |
| behavior: 'smooth', |
| }); |
| }, |
| }, |
| }; |
| |
| export default JumpLinkMixin; |