2012-05-04 8 views
0

CSSとHTMLを使用して簡単なタブ付きコンテンツ表示を作成しました。このコードは、他のコンテンツを含むかなり長いページの途中に埋め込まれます。アンカーリンクの位置にスクロールする - 望ましくない動作と非効率的な実装

ここjsFiddleです:http://jsfiddle.net/ollyf/R9rq2/

私は:targetの使用を作ったが、私はそれがどのように動作するか全くわかりません。いくつかのチュートリアルを読むが、私はその動作を完全には理解していない。私はこれが悪い/非効率的なコードのように感じる。

  1. このタブ付きコンテンツエフェクトを実現するための効率的な方法はありますか?
  2. そうでない場合は、スクロール位置をDIVの上部にスナップしないでコンテンツを表示するにはどうすればよいですか?
+1

あなたはしばらくこの状態にいました。あなたのコードは今のところうまくいくようです - あなたの ':target'の使用は私にとっては問題にはならないと思われます。あまりにも心配しないでください! – BoltClock

+0

ありがとう、本当に。私は自信を持っていません。私はそれを完全に理解しているとは思わない。しかし、言ってくれてありがとう! –

答えて

0

:target疑似セレクタは、ページアンカーによってトリガされます。これは、URLがhttp://www.example.com/#anchor1#anchor1:targetの場合にアクティブになることを意味します。ページは#anchor1要素までスクロールされます。これはブラウザのデフォルトの機能です。

タブ効果を達成するためのもう1つのオプションは、JavaScriptを使用することです。概念はjavascriptと同じですが、クリックハンドラを使用してdisplay属性を切り替えています。タブにはいくつか用意されているスクリプトが用意されています。ここに1つの例がありますhttp://jquerytools.org/demos/tabs/index.html

希望はこれをクリアするのに役立ちます。

+0

ありがとう! ':target'についてもう少し説明できますか?具体的には、 '#anchor1'をターゲットにすると、そのアンカーに関連するスタイルをアクティブにします。何か他のもの(例えば '#anchor2'など)を対象とすると、私は理解して正しいですが、'#anchor1'が対象になったときにアクティブになったスタイルを即座にリセット/無効化します。 –

+0

@Olly F:正しいです。なぜなら '#anchor1'はもうターゲットではないからです。 – BoltClock

+0

BoltClockありがとうございます。 –

関連する問題