0

ナビゲーションバーのボタンのいくつかを開始ページにリダイレクトする必要があります。スムーススクロールコーディングでは、メニュー項目が機能するためにはハッシュタグアンカーに向ける必要がありますが、これは機能しますが、別のページにリダイレクトしようとすると何も起こりません。エラーはなく、ボタンを覆うdivはありません。他のページを開こうとすると1ページのスムーズスクロールブートストラップナビゲーションリンクが動作しませんが、ページ内のアンカーでは機能します

ここで私が見た解決策は、特定の外部リンク用のハッシュタグの必要性を無効にするためにスクロールコードにステートメントを追加することでしたが、これをコード化する方法はわかりませんし、テンプレートのコードは、スレッド。言い換えれば、ボタンがクラス「ext-link」を持たない限り、onclickの通常のアクションを実行することを示すコードが必要です。詳細については、下のリンクを参照してください。 One page theme Bootstrap Navigation Link does not direct to another page, while it works for anchors inside the page

以下は正しいコードですが、そのように思えます。どうすれば "クリックすればいいのにクラス=リンクなし"のケースが含まれているので、私のnavbarのサイトルートから外部リンクを有効にすることができるのですか?

jQuery('#scrollToContent').click(function(e){ 
    e.preventDefault(); 
    jQuery.scrollTo("#portfolio", 1000, { offset:-(jQuery('#header .top').height()), axis:'y' }); 
}); 

jQuery('.nav > li > a').click(function(e){ 
    e.preventDefault(); 
    jQuery.scrollTo(jQuery(this).attr('href'), 400, { offset:-(jQuery('#header .top').height()), axis:'y' }); 
}) 

jQuery(window).scroll(function() { 
    //setHeaderBackground(); 
}); 
+0

[This](https://css-tricks.com/snippets/jquery/smooth-scrolling/)は、ソリューションではないにしても、少なくともいくつかの洞察を提供するようです。 –

+0

面白い記事ですが、残念ながら私を助けませんでした。私は、上記のスクリプト全体を以下のif文のようなもので囲んでいます: 'if( '.nav> li> a'!=" .ext-link "){}' しかし、それはうまくいかなかった... –

答えて

1

私はこの権利を得た場合は、このコードでさえハンドラもう一度クリックを変更することができ、それが動作するはずです:

jQuery('.nav > li > a').click(function(e){ 
    var $this = jQuery(this); 

    if (!$this.hasClass('ext-link')) { 
     e.preventDefault(); 
     jQuery.scrollTo($this.attr('href'), 400, { offset:-(jQuery('#header .top').height()), axis:'y' }); 
    } 
}) 

・ホープ、このことができます。 :)

+0

ありがとう、友人。あなたは完全にその日を救った! +1 @ティモ –

関連する問題