Fix error during language toggle
This commit is contained in:
parent
9f923f97d3
commit
dbff898bf3
1 changed files with 39 additions and 35 deletions
|
@ -25,44 +25,48 @@ var isMobile = false, isTablet = false, isLaptop = false;
|
||||||
function addSmoothScroll() {
|
function addSmoothScroll() {
|
||||||
// ref: https://css-tricks.com/snippets/jquery/smooth-scrolling/
|
// ref: https://css-tricks.com/snippets/jquery/smooth-scrolling/
|
||||||
// Select all links with hashes
|
// Select all links with hashes
|
||||||
$('a[href*="#"]').click(function (event) {
|
$('a[href*="#"]')
|
||||||
// On-page links
|
// Remove links that don't actually link to anything
|
||||||
if (
|
.not('[href="#"]')
|
||||||
location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')
|
.not('[href="#0"]')
|
||||||
&&
|
.click(function (event) {
|
||||||
location.hostname == this.hostname
|
// On-page links
|
||||||
) {
|
if (
|
||||||
// Figure out element to scroll to
|
location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')
|
||||||
var target = $(this.hash);
|
&&
|
||||||
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
|
location.hostname == this.hostname
|
||||||
// Does a scroll target exist?
|
) {
|
||||||
if (target.length) {
|
// Figure out element to scroll to
|
||||||
// Only prevent default if animation is actually gonna happen
|
var target = $(this.hash);
|
||||||
event.preventDefault();
|
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();
|
||||||
|
|
||||||
let offset = 60;
|
let offset = 60;
|
||||||
if (isMobile) {
|
if (isMobile) {
|
||||||
offset = 710;
|
offset = 710;
|
||||||
} else if (isTablet) {
|
} else if (isTablet) {
|
||||||
offset = 60;
|
offset = 60;
|
||||||
|
}
|
||||||
|
$('html, body').animate({
|
||||||
|
scrollTop: target.offset().top - offset
|
||||||
|
}, 1000, 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
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
$('html, body').animate({
|
|
||||||
scrollTop: target.offset().top - offset
|
|
||||||
}, 1000, 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
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
addSmoothScroll();
|
addSmoothScroll();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue