index.html内のアンカーリンクはスムーズにスクロールしますが、
他のページからindex.html内のアンカーリンクに飛ぼうとしたら、
何故かヘッダーが上に隠れてしまいます。
色々つけ外ししたり、他サイト様を参考にしましたが全然分かりません。
詳しい方、教えて頂けないでしょうか。
ちなみにindex.html自体に飛んでも埋まりません。
あくまでアンカーリンクが付いた時のみのようです。
埋まった時にheader全体にpadding-topで適当に数値を打ってみるとヘッダーが出ます。
色々jsを入れてるのが原因なのでしょうか。
使っているもの
var scrollpos; $('#menu_active, #menu_nav').on('click', function(){ $('body').toggleClass('open'); if(state == false) { scrollpos = $(window).scrollTop(); $('body').addClass('fixed').css({'top': -scrollpos}); state = true; } else { $('body').removeClass('fixed').css({'top': 0}); window.scrollTo( 0 , scrollpos ); state = false; } }); new function(){ var attr ="data-tor-smoothScroll"; var attrPatt = /noSmooth/; var d = document; function addEvent(elm,listener,fn){ try{ // IE elm.addEventListener(listener,fn,false); }catch(e){ elm.attachEvent( "on"+listener ,function(){ fn.apply(elm,arguments) } ); } } addEvent(window,"load",function(){ var anchors = d.getElementsByTagName("a"); for(var i = 0 ,len=anchors.length; i<len ; i++){ if(!attrPatt.test(anchors[i].getAttribute(attr)) && anchors[i].href.replace(/\#[a-zA-Z0-9_]+/,"") == location.href.replace(/\#[a-zA-Z0-9_]+/,"")){ anchors[i].rel = anchors[i].href; //anchors[i].href = "javascript:void(0)"; anchors[i].onclick=function(){SmoothScroll(this)} } } }); }
$(document).on('click', 'a[href*="#"]', function() { let time = 400; let target = $(this.hash); if (!target.length) return; let targetY = target.offset().top - $('#sp-menu').height(); $('html,body').animate({scrollTop: targetY}, time, 'swing'); return false; });
var navPos = jQuery( '#sp-menu' ).offset().top; // グローバルメニューの位置 var navHeight = jQuery( '#sp-menu' ).outerHeight(); // グローバルメニューの高さ jQuery( window ).on( 'scroll', function() { if ( jQuery( this ).scrollTop() > navPos ) { jQuery( 'body' ).css( 'padding-top', navHeight ); jQuery( '#sp-menu' ).addClass( 's_fixed' ); } else { jQuery( 'body' ).css( 'padding-top', 0 ); jQuery( '#sp-menu' ).removeClass( 's_fixed' ); } });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。