• このエントリーをはてなブックマークに追加

2020年05月25日(Mon)

追跡ナビや固定ヘッダーのレスポンシブと別ページに対応したアンカーリンクのズレ調整

追跡ナビや固定ヘッダーのレスポンシブと別ページに対応したアンカーリンクのズレ調整

まだ模索中ですが、とりあえず機能しているのでとりあえずメモ。

下記の2つのjavascriptを両方記述すればパソコンとスマホ時に何らかのアンカーリンクのズレを調整できます。

max-width のサイズは、CSSのレスポンシブに設定した数値と同じにした方が良いと思います。

別ページへのアンカーリンクのレスポンシブ対応

$(window).on('load', function() {
	id    = location.hash;
	speed = 0;
	if (window.matchMedia('(max-width: 599px)').matches){
		var headerHight=$("スマホ時の固定ヘッダーのIDまたはクラス名").height();
	}else{
		var headerHight=$("パソコン時の追跡ナビのIDまたはクラス名").height();
	}
	if ('' != id) {
		pos = $(id).offset().top - headerHight;
		$('html').animate({ scrollTop: pos }, speed );
	}
});

上記の嫌な所は移動してからズレを調整するところかな。。。

同一ページ内でのアンカーリンクのレスポンシブ対応

$(function(){
	if (window.matchMedia('(max-width: 599px)').matches){
		var pal=$("スマホ時の固定ヘッダーのIDまたはクラス名").height();
	}else{
		var pal=$("パソコン時の追跡ナビのIDまたはクラス名").height();
	}
	$('a[href^=#]').click(function(){
		var speed = 750;
		var href= $(this).attr("href");
		var target = $(href == "#" || href == "" ? 'html' : href);
		var position = target.offset().top-pal;
		$("html, body").animate({scrollTop:position}, speed, "swing");
		return false;
	});
});

【参考Webサイト】

コメント(0件)

追跡ナビや固定ヘッダーのレスポンシブと別ページに対応したアンカーリンクのズレ調整に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。

コメントフォーム

【ソーシャルボタン】


TOP