固定ヘッダーを採用しますと、ページ内リンク、ページ外からのアンカーリンクにおきまして、
固定ヘッダーの高さ分だけ、アンカー貼った箇所がめり込んでしまうのですが、
いろいろ検索してみた結果、下記コードで解決するようでしたので、読み込ませました。
$(function () { var headerHight = 80; //ヘッダの高さ $('a[href^=#]').click(function(){ var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top-headerHight; //ヘッダの高さ分位置をずらす $("html, body").animate({scrollTop:position}, 550, "swing"); //この数値は移動スピード return false; }); });
結果、chromeのデベロッパーツールではエラーをはいてないのですが、
うまくヘッダーの高さ分だけ下へずれてくれないです。
ちなみに別サイトでもおなじように固定ヘッダーを採用しているため、同様に対処したく、
jQuery( window ).on( 'load', function() { id = location.hash; speed = 0; headerHight = 180; // 固定ヘッダーの高さ if ( '' != id ) { pos = jQuery( id ).offset().top - headerHight; jQuery( 'html' ).animate({ scrollTop: pos }, speed ); } });
を読み込ましてあるのですが、こちらは問題なくヘッダーの高さ分だけページ内リンク箇所、下へずれてくれております。
同じコードを今回読み込ましてうまくいきませんでしたので、新たに検索して別のコードを読み込ました次第です。
なにか問題ありますでしょうか?よろしくお願いいたします。
追記で、wordpressを使用しておりまして、theme固有のjs内に、
function d() { jQuery("#menu-overlay").addClass("panel-open") } jQuery('a[href^="#"]').not(".noscroll,.woocommerce-tabs .stars a,.woocommerce-tabs .wc-tabs a,.reset_variations,.woocommerce-product-gallery__trigger").click(function() { if (!jQuery(this).parents().hasClass("noscroll")) { var e = jQuery(this).attr("href"), t = jQuery("#" == e || "" == e ? "html" : e); if (t.offset()) { var i = t.offset().top - l; jQuery("html, body").animate({ scrollTop: i }, 500, "swing") } return !1 } }), e.click(function() { c() }), t.click(function() { c() }), i.click(function(e) { d() }), n.click(function() { d() }),
という記述があります。
この箇所に干渉していて、動作しないという事はありますでしょうか??
まったくエラーははいていないもので。
回答2件
あなたの回答
tips
プレビュー