jQuery
を使用して、ユーザーをページの先頭に戻すアンカータグを更新しようとしています。ページのコンテンツがページ自体のheight
より大きい場合、リンクが表示されます。コンテンツがページ自体よりも大きくない場合、リンクは表示されません。jQueryを2回クリックして機能する
コンテンツエレメントのheight
は、nav
のリンクから返されるコンテンツに依存します。だから、リンククリックで、私はコンテンツ要素の高さを取得し、私は "トップに戻る"リンクを表示する必要があるかどうかを判断します。
問題はありませんが、問題が発生した場合は、nav
タブを2回クリックする必要があります。
のjQueryコード:
$(document).ready(function() {
$("a[data-toggle]").click(function() {
var pct = Math.round(($("div.tab-content").outerHeight(true)/$(window).height()) * 100);
if (pct > 90) {
$("#top-link").text("Back to top");
} else {
$("#top-link").empty();
}
});
});
ナビゲーションコード:
<header>
<nav>
<ul class="nav nav-tabs">
<li><a data-toggle="tab" href="#configs" >Configs</a></li>
<li><a data-toggle="tab" href="#error-log" >Error Log</a></li>
<li><a data-toggle="tab" href="#user-log" >User Log</a></li>
</ul>
</nav>
</header>
コンテンツ要素:
<main>
<div class="tab-content">
This area is populated with data depending on the nav link clicked.
</div>
</main>
は「トップに戻る」リンク:
<a id="top-link" href="#top"></a>
それが最初のクリックで機能するように、これを固定して援助のため、事前にありがとうございます。 L-トレイン@
あなたはおそらく 'snippet'または' fiddle'を追加し、このシナリオを再現してもらえますか? –
質問が更新されました。フィドルが追加されました。 –
あなたがフィドルに行くときは、タブ1をクリックし、ページの一番下までスクロールして、トップに戻るためのリンクがないことに注意してください。タブ1をもう一度クリックすると、リンクが表示されます。 –