-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcustom.js
43 lines (39 loc) · 1.67 KB
/
custom.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$(document).ready(function () {
// Select all links with hashes
$('a[href*="#"]')
// Remove links that don't actually link to anything
.not('[href="#"]')
.not('[href="#0"]')
.click(function (event) {
// On-page links
if (
location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '')
&&
location.hostname === this.hostname
) {
// Figure out element to scroll to
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
// Does a scroll target exist?
if (target.length) {
// Only prevent default if animation is actually gonna happen
event.preventDefault();
history.replaceState(null, null, document.location.pathname + this.hash);
$('html, body').animate({
scrollTop: target.offset().top
}, 600, function () {
// Callback after animation
// Must change focus!
var $target = $(target);
//$target.focus();
if ($target.is(':focus')) { // Checking if the target was focused
return false;
} else {
$target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
//$target.focus(); // Set focus again
}
});
}
}
});
});