実際の環境で上手く動くか自信がないですが。
js
1 jQuery(function () {
2 jQuery('#js-header-slider').on('init', () => { // ここ
3 var headerHeight = jQuery('header').outerHeight();
4 var urlHash = location.hash;
5 if (urlHash) {
6 jQuery('body,html').stop().scrollTop(0);
7 setTimeout(function () {
8 var target = jQuery(urlHash);
9 var position = target.offset().top - headerHeight;
10 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
11 }, 100);
12 }
13 }) // ここ
14 jQuery('a[href^="#"]').click(function () {
15 var href = jQuery(this).attr("href");
16 var target = jQuery(href);
17 var position = target.offset().top - headerHeight;
18 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
19 return false;
20 });
21 });
コメントを受けて修正
js
1 jQuery(function () {
2 var headerHeight = jQuery('header').outerHeight();
3 jQuery('#js-header-slider').on('init', () => { // ここ
4 var urlHash = location.hash;
5 if (urlHash) {
6 jQuery('body,html').stop().scrollTop(0);
7 setTimeout(function () {
8 var target = jQuery(urlHash);
9 var position = target.offset().top - headerHeight;
10 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
11 }, 100);
12 }
13 }) // ここ
14 jQuery('a[href^="#"]').click(function () {
15 var href = jQuery(this).attr("href");
16 var target = jQuery(href);
17 var position = target.offset().top - headerHeight;
18 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
19 return false;
20 });
21 });
コメントを受けて再修正
js
1 jQuery(function () {
2 var headerHeight = jQuery('header').outerHeight();
3 jQuery('#js-header-slider').on('init', () => { // ここ
4 var urlHash = location.hash;
5 if (urlHash) {
6 jQuery('body,html').stop().scrollTop(0);
7 setTimeout(function () {
8 var target = jQuery(urlHash);
9 var position = target.offset().top - headerHeight;
10 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
11 }, 100);
12 }
13 }) // ここ
14 jQuery('a[href*="#"]').click(function () { // ここ
15 var href = '#' + jQuery('a[href*="#"]').attr("href").split('#')[1]; // ここ
16
17 var target = jQuery(href);
18 var position = target.offset().top - headerHeight;
19 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
20 return false;
21 });
22 });
コメントを受けて再々修正
js
1 jQuery(function () {
2 var headerHeight = jQuery('header').outerHeight();
3 jQuery('#js-header-slider').on('init', () => { // ここ
4 var urlHash = location.hash;
5 if (urlHash) {
6 jQuery('body,html').stop().scrollTop(0);
7 setTimeout(function () {
8 var target = jQuery(urlHash);
9 var position = target.offset().top - headerHeight;
10 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
11 }, 100);
12 }
13 }) // ここ
14 jQuery('a[href*="#"]').click(function () { // ここ
15 var href = '#' + jQuery('this').attr("href").split('#')[1]; // ここ
16
17 var target = jQuery(href);
18 var position = target.offset().top - headerHeight;
19 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
20 return false;
21 });
22 });
コメントを受けて再々々修正
js
1 jQuery(function () {
2 var headerHeight = jQuery('header').outerHeight();
3 jQuery('#js-header-slider').on('init', () => { // ここ
4 var urlHash = location.hash;
5 if (urlHash) {
6 jQuery('body,html').stop().scrollTop(0);
7 setTimeout(function () {
8 var target = jQuery(urlHash);
9 var position = target.offset().top - headerHeight;
10 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
11 }, 100);
12 }
13 }) // ここ
14 jQuery('a[href*="#"]').click(function () { // ここ
15 var href = '#' + jQuery(this).attr("href").split('#')[1]; // ここ
16
17 var target = jQuery(href);
18 var position = target.offset().top - headerHeight;
19 jQuery('body,html').stop().animate({ scrollTop: position }, 500);
20 return false;
21 });
22 });