2016-08-12 5 views
2

他のページの特定のdivにリンクするボタンがあるセクションがあります。別のページのアンカータグにリンクする

<a id="btn1" class="btn btn-default" href="http://example.com/services.html#corporate" role="button">More</a> 

idは "corporate"というIDを持つ別のページのdivにリンクしています。

問題は、アンカータグにフォーカスする直前にページを開くときに、divに注目する前にメインヘッダーを点滅させるという点です。これを避けるためにとにかくありますか?一度リンクをたどってからもう一度罰金を取ると、divに集中する前にリンクを読み込んで表示するだけのようです。何かアドバイスをいただきました。

+0

URLハッシュを取得してスクロールする前にページが読み込まれることはありません – adeneo

+1

これは、ブラウザがdivにジャンプする前にページ全体を読み込むために発生します。多分あなた自身のブラウザを構築することを除いてそれを避ける方法があります。 – litelite

+0

@liteite "自分のブラウザを構築する"と言っていますか?それは少しの仕事のようです。 o.O – FrankerZ

答えて

3

問題は、あなたがページに移動した直後にページが完全に読み込まれていないことです。したがって、#corporateのアンカーはすぐには存在しません。その結果、ページの上部が最初にフラッシュされ、使用可能なアンカーに移動します。

+1

小さな遅延を追加して、スムーズなスクロールをあなたが望むdivに加えることができます。 –

+0

また、ページ全体の不透明度を、 – iomv

+0

@ T.Okaharaに解決されるようにすることもできます。これは、彼がリンクしているページを所有している場合にのみ可能です。彼が外国のページ上の特定の場所にユーザーを送ろうとしていた場合、遅れを導入する方法はありません。 –

0

jQueryを使用してIDまでスクロールダウンできます。少なくともそれは円滑なプロセスです。このようにして、ユーザーはページ上のどこにIDがあるかを知ることができるので、移動した場所について混乱することはありません。

var j = (document.URL.substring(document.URL.lastIndexOf("\/")+1)); 
var hash = j.substring(j.lastIndexOf("#")) 
if(j.lastIndexOf("#")!=-1) 
{ 
var j = j.substring(0,j.lastIndexOf("#")) 
$(document).ready(function(){ 
       $('html, body').stop().animate({ 
        scrollTop: $(hash+'').offset().top 
        }, 1000); 
}); 

私がこれを使用しているサイトからこのコードを取得しましたので、間違いがあればごめんなさい。

+0

多くの義務づけられた、すばらしい返信のおかげで –

+0

それはうまくいきます。あなたが何をしているのか正確には分かりませんが、すべて同じです。 – RouthMedia

関連する問題